Authentication using a digital watermark

ABSTRACT

A method and apparatus for identifying an object include encoding physical attributes of an object where the encoded information is utilized as at least one element for composing a digital watermark for the object. In another embodiment the physical attributes of the object are utilized as a key for accessing information included in a digital watermark for the object.

RELATED APPLICATION DATA

[0001] This application is a continuation-in-part of application Ser.No. 09/935,755, filed Aug. 22, 2001 (now pending), which iscontinuation-in-part of application Ser. No. 09/640,806, filed Aug. 17,2001 (now U.S. Pat. No. 6,438,231), which is a continuation ofapplication Ser. No. 09/169,088, filed Oct. 8, 1998 (now U.S. Pat. No.6,111,954), which is a continuation of application Ser. No. 08/637,531,filed Apr. 25, 1996 (now U.S. Pat. No. 5,822,436), which is acontinuation-in-part of application Ser. No. 08/534,005, filed Sep. 25,1995 (now U.S. Pat. No. 5,832,119), which is a continuation-in part ofapplication Ser. No. 08/438,159, filed May 8, 1995 (now U.S. Pat. No.5,850,481), which is a continuation-in-part of application Ser. No.08/327,426, filed Oct. 21, 1994 (now U.S. Pat. No. 5,768,426), which isa continuation-in-part of application Ser. No. 08/215,289, filed Mar.17, 1994 (now abandoned), which is a continuation-in-part of applicationSer. No. 08/154,866, filed Nov. 18, 1993 (now abandoned), whichapplications and patents are incorporated herein by reference. Priorityunder 35 U.S.C. § 120 is claimed to each of these prior applications.

[0002] This application is also a continuation-in-part of applicationSer. No. 09/924,281, filed Aug. 7, 2001 (now pending), which is acontinuation of application Ser. No. 09/339,314, filed Jun. 23, 1999(now U.S. Pat. No. 6,278,781), which is a continuation of applicationSer. No. 09/172,324, filed Oct. 13, 1998 (now U.S. Pat. No. 6,064,757),which is a continuation of application Ser. No. 08/637,531, filed Apr.25, 1996 (now U.S. Pat. No. 5,822,436), which applications and patentsare incorporated herein by reference. Priority under 35 U.S.C. § 120 isclaimed to each of these prior applications.

[0003] This application is also a continuation-in-part of applicationSer. No. 09/186,962, filed Nov. 5, 1998 (now pending), which is acontinuation of application Ser. No. 08/649,419, filed May 16, 1996 (nowU.S. Pat. No. 5,862,260), which is a continuation-in-part of applicationSer. No. 08/637,531, filed Apr. 25, 1996 (now U.S. Pat. No. 5,822,436),which is a continuation-in-part of application Ser. No. 08/534,005,filed Sep. 25, 1995 (now U.S. Pat. No. 5,832,119), which is acontinuation-in-part of application Ser. No. 08/438,159, filed May 8,1995 (now U.S. Pat. No. 5,850,481), which is a continuation-in-part ofapplication Ser. No. 08/327,426, filed Oct. 21, 1994 (now U.S. Pat. No.5,768,426), which is a continuation-in-part of application Ser. No.08/215,289, filed Mar. 17, 1994 (now abandoned), which is acontinuation-in-part of application Ser. No. 08/154,866, filed Nov. 18,1993 (now abandoned), which applications and patents are incorporatedherein by reference. Priority under 35 U.S.C. § 120 is claimed to eachof these prior applications. Priority is also claimed to applicationPCT/US96/06618, filed May 7, 1996 and to application PCT/US94/13366,filed Nov. 16, 1994, which applications are incorporated herein byreference.

[0004] This application is also a continuation-in-part of applicationSer. No. 09/761,349, filed Jan. 16, 2001 (now pending), which is adivision of application Ser. No. 09/127,502, filed Jul. 31, 1998 (nowU.S. Pat. No. 6,345,104), which is a continuation-in-part of applicationSer. No. 08/967,693, filed Nov. 12, 1997 (now U.S. Pat. No. 6,122,392),which is a continuation of application Ser. No. 08/614,521, filed Mar.15, 1996 (now U.S. Pat. No. 5,745,604), which is a continuation ofapplication Ser. No. 08/215,289, filed Mar. 17, 1994 (now abandoned).The 09/127,502 application is also a continuation-in-part of applicationSer. No. 08/649,419, filed May 16, 1996 (now U.S. Pat. No. 5,862,260).Each of these applications and patents are herein incorporated byreference. Priority under 35 U.S.C. § 120 is claimed to each of theseprior applications.

[0005] This application is also a continuation-in-part of applicationSer. No. 09/612,177, filed Jul. 6, 2000 (now pending), which is acontinuation of application Ser. No. 08/746,613, filed Nov. 12, 1996(now U.S. Pat. No. 6,122,403), which is a continuation-in-part ofapplication Ser. No. 08/649,419, filed May 16, 1996 (now U.S. Pat. No.5,862,260) and a continuation-in-part of application Ser. No.08/508,083, filed Jul. 27, 1995 (now U.S. Pat. No. 5,841,978), which iscontinuation-in-part of application Ser. No. 08/436,098, filed May 8,1995 (now U.S. Pat. No. 5,636,292) and a continuation-in-part ofapplication Ser. No. 08/327,426, filed Oct. 21, 1994 (now U.S. Pat. No.5,768,426), which is a continuation-in-part of application Ser. No.08/215,289, filed Mar. 17, 1994 (abandoned), which is acontinuation-in-part of application Ser. No. 08/154,866, filed Nov. 18,1993 (abandoned), which applications and patents are incorporated hereinby reference. Priority under 35 U.S.C. § 120 is claimed to each of theseprior applications.

[0006] This application is also a continuation-in-part of U.S. patentapplication Ser. No. 09/151,492, filed Sep. 11, 1998, which is acontinuation-in-part of U.S. patent application Ser. No. 08/438,159,filed May 8, 1995 (now U.S. Pat. No. 5,850,481), which is acontinuation-in-part of application Ser. No. 08/327,426, filed Oct. 21,1994 (now U.S. Pat. No. 5,768,426), which is a continuation-in-part ofabandoned application Ser. No. 08/215,289, filed Mar. 17, 1994, whichapplications and patents are incorporated herein by reference. Priorityunder 35 U.S.C. § 120 is claimed to each of these prior applications.The 09/151,492 application is attached hereto as Appendix A, which isherein incorporated by reference.

[0007] This application is also a continuation in part of U.S. patentapplication Ser. No. 09/837,564, filed Apr. 17, 2001, which claims thebenefit of U.S. Provisional Application Nos. 60/198,138, filed Apr. 17,2000 and 60/198,849 filed Apr. 21, 2000. The 09/837,564 application is acontinuation in part of U.S. patent application Ser. No. 09/503,881,filed Feb. 14, 2000, which is a continuation in part of application Ser.No. 09/186,962, filed Nov. 5, 1998, which is a continuation ofapplication Ser. No. 08/649,419, filed May 16, 1996, (now U.S. Pat. No.5,862,260), which is a continuation in part of application Ser. No.08/637,531, filed Apr. 25, 1996, (now U.S. Pat. No. 5,822,436), which isa continuation in part of application Ser. No. 08/512,993 filed Aug. 9,1995, (abandoned in favor of FWC 08/763,847, now issued as U.S. Pat. No.5,841,886). Each of the above applications and patents is incorporatedherein by reference. Priority under 35 U.S.C. § 120 is claimed to eachof these prior applications. A redacted version of the 09/837,564application is attached hereto as Appendix B, which is hereinincorporated by reference.

[0008] This application is also a continuation-in-part of U.S. patentapplication Ser. No. 09/482,786, filed Jan. 13, 2000. The 09/482,786application is herein incorporated by reference. Priority under 35U.S.C.§ 120 is claimed to this prior application. The 09/482,786application is attached hereto as Appendix C, which is hereinincorporated by reference.

BACKGROUND

[0009] Hiding data in imagery or audio is a technique well known toartisans in the field, and is termed “steganography.” There are a numberof diverse approaches to, and applications of, steganography. A briefsurvey follows:

[0010] British patent publication 2,196,167 to Thorn EMI discloses asystem in which an audio recording is electronically mixed with amarking signal indicative of the owner of the recording, where thecombination is perceptually identical to the original. U.S. Pat. Nos.4,963,998 and 5,079,648 disclose variants of this system.

[0011] U.S. Pat. No. 5,319,735 to Bolt, Berenak & Newman rests on thesame principles as the earlier Thorn EMI publication, but additionallyaddresses psycho-acoustic masking issues.

[0012] U.S. Pat. Nos. 4,425,642, 4,425,661, 5,404,377 and 5,473,631 toMoses disclose various systems for imperceptibly embedding data intoaudio signals—the latter two patents particularly focusing on neuralnetwork implementations and perceptual coding details.

[0013] U.S. Pat. No. 4,943,973 to AT&T discloses a system employingspread spectrum techniques for adding a low level noise signal to otherdata to convey auxiliary data therewith. The patent is particularlyillustrated in the context of transmitting network control signals alongwith digitized voice signals.

[0014] U.S. Pat. No. 5,161,210 to U.S. Philips discloses a system inwhich additional low-level quantization levels are defined on an audiosignal to convey, e.g., a copy inhibit code, therewith.

[0015] U.S. Pat. No. 4,972,471 to Gross discloses a system intended toassist in the automated monitoring of audio (e.g. radio) signals forcopyrighted materials by reference to identification signalssubliminally embedded therein.

[0016] U.S. Pat. No. 5,243,423 to DeJean discloses a video steganographysystem which encodes digital data (e.g. program syndicationverification, copyright marking, media research, closed captioning, orlike data) onto randomly selected video lines. DeJean relies ontelevision sync pulses to trigger a stored pseudo random sequence whichis XORed with the digital data and combined with the video.

[0017] European application EP 581,317 discloses a system forredundantly marking images with multi-bit identification codes. Each “1”(“0”) bit of the code is manifested as a slight increase (decrease) inpixel values around a plurality of spaced apart “signature points.”Decoding proceeds by computing a difference between a suspect image andthe original, unencoded image, and checking for pixel perturbationsaround the signature points.

[0018] PCT application WO 95/14289 describes the present applicant'sprior work in this field.

[0019] Komatsu et al., describe an image marking technique in theirpaper “A Proposal on Digital Watermark in Document Image Communicationand Its Application to Realizing a Signature,” Electronics andCommunications in Japan, Part 1, Vol. 73, No. 5, 1990, pp. 22-33. Thework is somewhat difficult to follow but apparently results in a simpleyes/no determination of whether the watermark is present in a suspectimage (e.g. a 1 bit encoded message).

[0020] There is a large body of work regarding the embedding of digitalinformation into video signals. Many perform the embedding in thenon-visual portion of the signal such as in the vertical and horizontalblanking intervals, but others embed the information “in-band” (i.e. inthe visible video signal itself). Examples include U.S. Pat. Nos.4,528,588, 4,595,950, and 5,319,453; European application Ser. No.441,702; and Matsui et. al, “Video-Steganography: How to Secretly Embeda Signature in a Picture,” IMA Intellectual Property ProjectProceedings, January 1994, Vol. 1, Issue 1, pp. 187-205.

[0021] There are various consortium research efforts underway in Europeon copyright marking of video and multimedia. A survey of techniques isfound in “Access Control and Copyright Protection for Images (ACCOPI),WorkPackage 8: Watermarking,” Jun. 30, 1995, 46 pages. A new project,termed TALISMAN, appears to extend certain of the ACCOPI work. Zhao andKoch, researchers active in these projects, provide a Web-basedelectronic media marking service known as Syscop.

[0022] Aura reviews many issues of steganography in his paper “InvisibleCommunication,” Helskinki University of Technology, Digital SystemsLaboratory, Nov. 5, 1995.

[0023] Sandford II, et al. review the operation of their May, 1994,image steganography program (BMPEMBED) in “The Data Embedding Method,”SPIE Vol. 2615, Oct. 23, 1995, pp. 226-259.

[0024] A British company, Highwater FBI, Ltd., has introduced a softwareproduct which is said to imperceptibly embed identifying informationinto photographs and other graphical images. This technology is thesubject of European patent applications 9400971.9 (filed Jan. 19, 1994),9504221.2 (filed Mar. 2, 1995), and 9513790.7 (filed Jul. 3, 1995), thefirst of which has been laid open as PCT publication WO 95/20291.

[0025] Walter Bender at M.I.T. has done a variety of work in the field,as illustrate by his paper “Techniques for Data Hiding,” MassachusettsInstitute of Technology, Media Laboratory, January 1995.

[0026] Dice, Inc. of Palo Alto has developed an audio marking technologymarketed under the name Argent. While a U.S. Patent Application isunderstood to be pending, it has not yet been issued.

[0027] Tirkel et al, at Monash University, have published a variety ofpapers on “electronic watermarking” including, e.g., “Electronic WaterMark,” DICTA-93, Macquarie University, Sydney, Australia, December,1993, pp. 666-673, and “A Digital Watermark,” IEEE InternationalConference on Image Processing, Nov. 13-16, 1994, pp. 86-90.

[0028] Cox et al, of the NEC Technical Research Institute, discussvarious data embedding techniques in their published NEC technicalreport entitled “Secure Spread Spectrum Watermarking for Multimedia,”December, 1995.

[0029] Möller et al. discuss an experimental system for imperceptiblyembedding auxiliary data on an ISDN circuit in “RechnergestutzteSteganographie: Wie sie Funktioniert und warum folglich jedeReglementierung von Verschlusselung unsinnig ist,” DuD, Datenschutz undDatensicherung, 18/6 (1994) 318-326. The system randomly picks ISDNsignal samples to modify, and suspends the auxiliary data transmissionfor signal samples which fall below a threshold.

[0030] There are a variety of shareware programs available on theinternet (e.g. “Stego” and “White Noise Storm”) which generally operateby swapping bits from a to-be-concealed message stream into the leastsignificant bits of an image or audio signal. White Noise Storm effectsa randomization of the data to enhance its concealment.

BRIEF DESCRIPTION OF THE DRAWINGS

[0031]FIG. 1 is a simple and classic depiction of a one dimensionaldigital signal which is discretized in both axes.

[0032]FIG. 2 is a general overview, with detailed description of steps,of the process of embedding an “imperceptible” identification signalonto another signal.

[0033]FIG. 3 is a step-wise description of how a suspected copy of anoriginal is identified.

[0034]FIG. 4 is a schematic view of an apparatus for pre-exposing filmwith identification information.

[0035]FIG. 5 is a diagram of a “black box” embodiment.

[0036]FIG. 6 is a schematic block diagram of the embodiment of FIG. 5.

[0037]FIG. 7 shows a variant of the FIG. 6 embodiment adapted to encodesuccessive sets of input data with different code words but with thesame noise data.

[0038]FIG. 8 shows a variant of the FIG. 6 embodiment adapted to encodeeach frame of a videotaped production with a unique code number.

[0039] FIGS. 9A-9C are representations of an industry standard noisesecond.

[0040]FIG. 10 shows an integrated circuit used in detecting standardnoise codes.

[0041]FIG. 11 shows a process flow for detecting a standard noise codethat can be used in the FIG. 10 embodiment.

[0042]FIG. 12 is an embodiment employing a plurality of detectors.

[0043]FIG. 13 shows an embodiment in which a pseudo-random noise frameis generated from an image.

[0044]FIG. 14 illustrates how statistics of a signal can be used in aidof decoding.

[0045]FIG. 15 shows how a signature signal can be preprocessed toincrease its robustness in view of anticipated distortion, e.g. MPEG.

[0046]FIGS. 16 and 17 show embodiments in which information about a fileis detailed both in a header, and in the file itself.

[0047] FIGS. 18-20 show details relating to embodiments usingrotationally symmetric patterns.

[0048]FIG. 21 shows encoding “bumps” rather than pixels.

[0049] FIGS. 22-26 detail aspects of a security card.

[0050]FIG. 27 is a diagram illustrating a network linking method usinginformation embedded in data objects that have inherent noise.

[0051]FIGS. 27A and 27B show a typical web page, and a step in itsencapsulation into a self extracting web page object.

[0052]FIG. 28 is a diagram of a photographic identification document orsecurity card.

[0053]FIGS. 29 and 30 illustrate two embodiments by which subliminaldigital graticules can be realized.

[0054]FIG. 29A shows a variation on the FIG. 29 embodiment.

[0055]FIGS. 31A and 31B show the phase of spatial frequencies along twoinclined axes.

[0056] FIGS. 32A-32C show the phase of spatial frequencies along first,second and third concentric rings.

[0057] FIGS. 33A-33E show steps in the registration process for asubliminal graticule using inclined axes.

[0058] FIGS. 34A-34E show steps in the registration process for asubliminal graticule using concentric rings.

[0059] FIGS. 35A-35C shows further steps in the registration process fora subliminal graticule using inclined axes.

[0060] FIGS. 36A-36D show another registration process that does notrequire a 2D FFT.

[0061]FIG. 37 is a flow chart summarizing a registration process forsubliminal graticules.

[0062]FIG. 38 is a block diagram showing principal components of anexemplary wireless telephony system.

[0063]FIG. 39 is a block diagram of an exemplary steganographic encoderthat can be used in the telephone of the FIG. 38 system.

[0064]FIG. 40 is a block diagram of an exemplary steganographic decoderthat can be used in the cell site of the FIG. 1 system.

[0065]FIGS. 41A and 41B show exemplary bit cells used in one form ofencoding.

[0066]FIG. 42 shows a hierarchical arrangement of signature blocks,sub-blocks, and bit cells used in one embodiment.

DETAILED DESCRIPTION

[0067] In the following discussion of an illustrative embodiment, thewords “signal” and “image” are used interchangeably to refer to bothone, two, and even beyond two dimensions of digital signal. Exampleswill routinely switch back and forth between a one dimensionalaudio-type digital signal and a two dimensional image-type digitalsignal.

[0068] In order to fully describe the details of an illustrativeembodiment, it is necessary first to describe the basic properties of adigital signal. FIG. 1 shows a classic representation of a onedimensional digital signal. The x-axis defines the index numbers ofsequence of digital “samples,” and the y-axis is the instantaneous valueof the signal at that sample, being constrained to exist only at afinite number of levels defined as the “binary depth” of a digitalsample. The example depicted in FIG. 1 has the value of 2 to the fourthpower, or “4 bits,” giving 16 allowed states of the sample value.

[0069] For audio information such as sound waves, it is commonlyaccepted that the digitization process discretizes a continuousphenomena both in the time domain and in the signal level domain. Assuch, the process of digitization itself introduces a fundamental errorsource, in that it cannot record detail smaller than the discretizationinterval in either domain. The industry has referred to this, amongother ways, as “aliasing” in the time domain, and “quantization noise”in the signal level domain. Thus, there will always be a basic errorfloor of a digital signal. Pure quantization noise, measured in a rootmean square sense, is theoretically known to have the value of one overthe square root of twelve, or about 0.29 DN, where DN stands for‘Digital Number’ or the finest unit increment of the signal level. Forexample, a perfect 12-bit digitizer will have 4096 allowed DN with aninnate root mean square noise floor of ˜0.29 DN.

[0070] All known physical measurement processes add additional noise tothe transformation of a continuous signal into the digital form. Thequantization noise typically adds in quadrature (square root of the meansquares) to the “analog noise” of the measurement process, as it issometimes referred to.

[0071] With almost all commercial and technical processes, the use ofthe decibel scale is used as a measure of signal and noise in a givenrecording medium. The expression “signal-to-noise ratio” is generallyused, as it will be in this disclosure. As an example, this disclosurerefers to signal to noise ratios in terms of signal power and noisepower, thus 20 dB represents a 10 times increase in signal amplitude.

[0072] In summary, this embodiment embeds an N-bit value onto an entiresignal through the addition of a very low amplitude encodation signalwhich has the look of pure noise. N is usually at least 8 and is cappedon the higher end by ultimate signal-to-noise considerations and “biterror” in retrieving and decoding the N-bit value. As a practicalmatter, N is chosen based on application specific considerations, suchas the number of unique different “signatures” that are desired. Toillustrate, if N=128, then the number of unique digital signatures is inexcess of 10{circumflex over ( )}{circumflex over ( )}38 (2{circumflexover ( )}{circumflex over ( )}128). This number is believed to be morethan adequate to both identify the material with sufficient statisticalcertainty and to index exact sale and distribution information.

[0073] The amplitude or power of this added signal is determined by theaesthetic and informational considerations of each and every applicationusing the present methodology. For instance, non-professional video canstand to have a higher embedded signal level without becoming noticeableto the average human eye, while high precision audio may only be able toaccept a relatively small signal level lest the human ear perceive anobjectionable increase in “hiss.” These statements are generalities andeach application has its own set of criteria in choosing the signallevel of the embedded identification signal. The higher the level ofembedded signal, the more corrupted a copy can be and still beidentified. On the other hand, the higher the level of embedded signal,the more objectionable the perceived noise might be, potentiallyimpacting the value of the distributed material.

[0074] To illustrate the range of different applications to whichapplicant's technology can be applied, the present specification detailstwo different systems. The first (termed, for lack of a better name, a“batch encoding” system), applies identification coding to an existingdata signal. The second (termed, for lack of a better name, a “real timeencoding” system), applies identification coding to a signal as it isproduced. Those skilled in the art will recognize that the principles ofapplicant's technology can be applied in a number of other contexts inaddition to these particularly described.

[0075] The discussions of these two systems can be read in either order.Some readers may find the latter more intuitive than the former; forothers the contrary may be true.

BATCH ENCODING

[0076] The following discussion of a first class of embodiments is bestprefaced by a section defining relevant terms:

[0077] The original signal refers to either the original digital signalor the high quality digitized copy of a non-digital original.

[0078] The N-bit identification word refers to a unique identificationbinary value, typically having N range anywhere from 8 to 128, which isthe identification code ultimately placed onto the original signal viathe disclosed transformation process. In the illustrated embodiment,each N-bit identification word begins with the sequence of values‘0101,’ which is used to determine an optimization of thesignal-to-noise ratio in the identification procedure of a suspectsignal (see definition below).

[0079] The m'th bit value of the N-bit identification word is either azero or one corresponding to the value of the m'th place, reading leftto right, of the N-bit word. E.g., the first (m=1) bit value of the N=8identification word 01110100 is the value ‘0;’ the second bit value ofthis identification word is ‘1’, etc.

[0080] The m'th individual embedded code signal refers to a signal whichhas dimensions and extent precisely equal to the original signal (e.g.both are a 512 by 512 digital image), and which is (in the illustratedembodiment) an independent pseudo-random sequence of digital values.“Pseudo” pays homage to the difficulty in philosophically defining purerandomness, and also indicates that there are various acceptable ways ofgenerating the “random” signal. There will be exactly N individualembedded code signals associated with any given original signal.

[0081] The acceptable perceived noise level refers to anapplication-specific determination of how much “extra noise,” i.e.amplitude of the composite embedded code signal described next, can beadded to the original signal and still have an acceptable signal to sellor otherwise distribute. This disclosure uses a 1 dB increase in noiseas a typical value which might be acceptable, but this is quitearbitrary.

[0082] The composite embedded code signal refers to the signal which hasdimensions and extent precisely equal to the original signal, (e.g. bothare a 512 by 512 digital image), and which contains the addition andappropriate attenuation of the N individual embedded code signals. Theindividual embedded signals are generated on an arbitrary scale, whereasthe amplitude of the composite signal must not exceed the pre-setacceptable perceived noise level, hence the need for “attenuation” ofthe N added individual code signals.

[0083] The distributable signal refers to the nearly similar copy of theoriginal signal, consisting of the original signal plus the compositeembedded code signal. This is the signal which is distributed to theoutside community, having only slightly higher but acceptable “noiseproperties” than the original.

[0084] A suspect signal refers to a signal which has the generalappearance of the original and distributed signal and whose potentialidentification match to the original is being questioned. The suspectsignal is then analyzed to see if it matches the N-bit identificationword.

[0085] The detailed methodology of this first embodiment begins bystating that the N-bit identification word is encoded onto the originalsignal by having each of the m bit values multiply their correspondingindividual embedded code signals, the resultant being accumulated in thecomposite signal, the fully summed composite signal then beingattenuated down to the acceptable perceived noise amplitude, and theresultant composite signal added to the original to become thedistributable signal.

[0086] The original signal, the N-bit identification word, and all Nindividual embedded code signals are then stored away in a securedplace. A suspect signal is then found. This signal may have undergonemultiple copies, compressions and decompressions, resamplings ontodifferent spaced digital signals, transfers from digital to analog backto digital media, or any combination of these items. IF the signal stillappears similar to the original, i.e. its innate quality is notthoroughly destroyed by all of these transformations and noiseadditions, then depending on the signal to noise properties of theembedded signal, the identification process should function to someobjective degree of statistical confidence. The extent of corruption ofthe suspect signal and the original acceptable perceived noise level aretwo key parameters in determining an expected confidence level ofidentification.

[0087] The identification process on the suspected signal begins byresampling and aligning the suspected signal onto the digital format andextent of the original signal. Thus, if an image has been reduced by afactor of two, it needs to be digitally enlarged by that same factor.Likewise, if a piece of music has been “cut out,” but may still have thesame sampling rate as the original, it is necessary to register thiscut-out piece to the original, typically done by performing a localdigital cross-correlation of the two signals (a common digitaloperation), finding at what delay value the correlation peaks, thenusing this found delay value to register the cut piece to a segment ofthe original.

[0088] Once the suspect signal has been sample-spacing matched andregistered to the original, the signal levels of the suspect signalshould be matched in an rms sense to the signal level of the original.This can be done via a search on the parameters of offset,amplification, and gamma being optimized by using the minimum of themean squared error between the two signals as a function of the threeparameters. We can call the suspect signal normalized and registered atthis point, or just normalized for convenience.

[0089] The newly matched pair then has the original signal subtractedfrom the normalized suspect signal to produce a difference signal. Thedifference signal is then cross-correlated with each of the N individualembedded code signals and the peak cross-correlation value recorded. Thefirst four bit code (‘0101’) is used as a calibrator both on the meanvalues of the zero value and the one value, and on further registrationof the two signals if a finer signal to noise ratio is desired (i.e.,the optimal separation of the 0101 signal will indicate an optimalregistration of the two signals and will also indicate the probableexistence of the N-bit identification signal being present.)

[0090] The resulting peak cross-correlation values will form a noisyseries of floating point numbers which can be transformed into 0's and1's by their proximity to the mean values of 0 and 1 found by the 0101calibration sequence. If the suspect signal has indeed been derived fromthe original, the identification number resulting from the above processwill match the N-bit identification word of the original, bearing inmind either predicted or unknown “bit error” statistics. Signal-to-noiseconsiderations will determine if there will be some kind of “bit error”in the identification process, leading to a form of X % probability ofidentification where X might be desired to be 99.9% or whatever. If thesuspect copy is indeed not a copy of the original, an essentially randomsequence of 0's and 1's will be produced, as well as an apparent lack ofseparation of the resultant values. This is to say, if the resultantvalues are plotted on a histogram, the existence of the N-bitidentification signal will exhibit strong bi-level characteristics,whereas the non-existence of the code, or the existence of a differentcode of a different original, will exhibit a type of randomgaussian-like distribution. This histogram separation alone should besufficient for an identification, but it is even stronger proof ofidentification when an exact binary sequence can be objectivelyreproduced.

[0091] Specific Example

[0092] Imagine that we have taken a valuable picture of two heads ofstate at a cocktail party, pictures which are sure to earn somereasonable fee in the commercial market. We desire to sell this pictureand ensure that it is not used in an unauthorized or uncompensatedmanner. This and the following steps are summarized in FIG. 2.

[0093] Assume the picture is transformed into a positive color print. Wefirst scan this into a digitized form via a normal high quality blackand white scanner with a typical photometric spectral response curve.(It is possible to get better ultimate signal to noise ratios byscanning in each of the three primary colors of the color image, butthis nuance is not central to describing the basic process.)

[0094] Let us assume that the scanned image now becomes a 4000 by 4000pixel monochrome digital image with a grey scale accuracy defined by12-bit grey values or 4096 allowed levels. We will call this the“original digital image” realizing that this is the same as our“original signal” in the above definitions.

[0095] During the scanning process we have arbitrarily set absoluteblack to correspond to digital value ‘30’. We estimate that there is abasic 2 Digital Number root mean square noise existing on the originaldigital image, plus a theoretical noise (known in the industry as “shotnoise”) of the square root of the brightness value of any given pixel.In formula, we have:

<RMS Noise_(n,m) >=sqrt(4+(V _(n,m)−30))  (1)

[0096] Here, n and m are simple indexing values on rows and columns ofthe image ranging from 0 to 3999. Sqrt is the square root. V is the DNof a given indexed pixel on the original digital image. The < > bracketsaround the RMS noise merely indicates that this is an expected averagevalue, where it is clear that each and every pixel will have a randomerror individually. Thus, for a pixel value having 1200 as a digitalnumber or “brightness value”, we find that its expected rms noise valueis sqrt(1204)=34.70, which is quite close to 34.64, the square root of1200.

[0097] We furthermore realize that the square root of the innatebrightness value of a pixel is not precisely what the eye perceives as aminimum objectionable noise, thus we come up with the formula:

<RMS Addable Noise_(n,m) >=X*sqrt(4+(V _(n,m)−30){circle over ()}Y)  (2)

[0098] Where X and Y have been added as empirical parameters which wewill adjust, and “addable” noise refers to our acceptable perceivednoise level from the definitions above. We now intend to experiment withwhat exact value of X and Y we can choose, but we will do so at the sametime that we are performing the next steps in the process.

[0099] The next step in our process is to choose N of our N-bitidentification word. We decide that a 16 bit main identification valuewith its 65536 possible values will be sufficiently large to identifythe image as ours, and that we will be directly selling no more than 128copies of the image which we wish to track, giving 7 bits plus an eighthbit for an odd/even adding of the first 7 bits (i.e. an error checkingbit on the first seven). The total bits required now are at 4 bits forthe 0101 calibration sequence, 16 for the main identification, 8 for theversion, and we now throw in another 4 as a further error checking valueon the first 28 bits, giving 32 bits as N. The final 4 bits can use oneof many industry standard error checking methods to choose its fourvalues.

[0100] We now randomly determine the 16 bit main identification number,finding for example, 1101 0001 1001 1110; our first versions of theoriginal sold will have all 0's as the version identifier, and the errorchecking bits will fall out where they may. We now have our unique 32bit identification word which we will embed on the original digitalimage.

[0101] To do this, we generate 32 independent random 4000 by 4000encoding images for each bit of our 32 bit identification word. Themanner of generating these random images is revealing. There arenumerous ways to generate these. By far the simplest is to turn up thegain on the same scanner that was used to scan in the originalphotograph, only this time placing a pure black image as the input, thenscanning this 32 times. The only drawback to this technique is that itdoes require a large amount of memory and that “fixed pattern” noisewill be part of each independent “noise image.” But, the fixed patternnoise can be removed via normal “dark frame” subtraction techniques.Assume that we set the absolute black average value at digital number‘100,’ and that rather than finding a 2 DN rms noise as we did in thenormal gain setting, we now find an rms noise of 10 DN about each andevery pixel's mean value.

[0102] We next apply a mid-spatial-frequency bandpass filter (spatialconvolution) to each and every independent random image, essentiallyremoving the very high and the very low spatial frequencies from them.We remove the very low frequencies because simple real-world errorsources like geometrical warping, splotches on scanners,mis-registrations, and the like will exhibit themselves most at lowerfrequencies also, and so we want to concentrate our identificationsignal at higher spatial frequencies in order to avoid these types ofcorruptions. Likewise, we remove the higher frequencies because multiplegeneration copies of a given image, as well as compression-decompressiontransformations, tend to wipe out higher frequencies anyway, so there isno point in placing too much identification signal into thesefrequencies if they will be the ones most prone to being attenuated.Therefore, our new filtered independent noise images will be dominatedby mid-spatial frequencies. On a practical note, since we are using12-bit values on our scanner and we have removed the DC valueeffectively and our new rms noise will be slightly less than 10 digitalnumbers, it is useful to boil this down to a 6-bit value ranging from−32 through 0 to 31 as the resultant random image.

[0103] Next we add all of the random images together which have a ‘1’ intheir corresponding bit value of the 32-bit identification word,accumulating the result in a 16-bit signed integer image. This is theunattenuated and un-scaled version of the composite embedded signal.

[0104] Next we experiment visually with adding the composite embeddedsignal to the original digital image, through varying the X and Yparameters of equation 2. In formula, we visually iterate to bothmaximize X and to find the appropriate Y in the following:

V _(dist;n,m) =V _(orig;n,m) +V _(comp,n,m) *X*sqrt(4+V _(orig;n,m){circle over ( )}Y)  (3)

[0105] where dist refers to the candidate distributable image, i.e. weare visually iterating to find what X and Y will give us an acceptableimage; orig refers to the pixel value of the original image; and comprefers to the pixel value of the composite image. The n's and m's stillindex rows and columns of the image and indicate that this operation isdone on all 4000 by 4000 pixels. The symbol V is the DN of a given pixeland a given image.

[0106] As an arbitrary assumption, now, we assume that our visualexperimentation has found that the value of X=0.025 and Y=0.6 areacceptable values when comparing the original image with the candidatedistributable image. This is to say, the distributable image with the“extra noise” is acceptably close to the original in an aesthetic sense.Note that since our individual random images had a random rms noisevalue around 10 DN, and that adding approximately 16 of these imagestogether will increase the composite noise to around 40 DN, the Xmultiplication value of 0.025 will bring the added rms noise back toaround 1 DN, or half the amplitude of our innate noise on the original.This is roughly a 1 dB gain in noise at the dark pixel values andcorrespondingly more at the brighter values modified by the Y value of0.6.

[0107] So with these two values of X and Y, we now have constructed ourfirst versions of a distributable copy of the original. Other versionswill merely create a new composite signal and possibly change the Xslightly if deemed necessary. We now lock up the original digital imagealong with the 32-bit identification word for each version, and the 32independent random 4-bit images, waiting for our first case of asuspected piracy of our original. Storage wise, this is about 14Megabytes for the original image and 32*0.5bytes*16 million=˜256Megabytes for the random individual encoded images. This is quiteacceptable for a single valuable image. Some storage economy can begained by simple lossless compression.

[0108] Finding a Suspected Piracy of Our Image

[0109] We sell our image and several months later find our two heads ofstate in the exact poses we sold them in, seemingly cut and lifted outof our image and placed into another stylized background scene. This new“suspect” image is being printed in 100,000 copies of a given magazineissue, let us say. We now go about determining if a portion of ouroriginal image has indeed been used in an unauthorized manner. FIG. 3summarizes the details.

[0110] The first step is to take an issue of the magazine, cut out thepage with the image on it, then carefully but not too carefully cut outthe two figures from the background image using ordinary scissors. Ifpossible, we will cut out only one connected piece rather than the twofigures separately. We paste this onto a black background and scan thisinto a digital form. Next we electronically flag or mask out the blackbackground, which is easy to do by visual inspection.

[0111] We now procure the original digital image from our secured placealong with the 32-bit identification word and the 32 individual embeddedimages. We place the original digital image onto our computer screenusing standard image manipulation software, and we roughly cut along thesame borders as our masked area of the suspect image, masking this imageat the same time in roughly the same manner. The word ‘roughly’ is usedsince an exact cutting is not needed, it merely aids the identificationstatistics to get it reasonably close.

[0112] Next we rescale the masked suspect image to roughly match thesize of our masked original digital image, that is, we digitally scaleup or down the suspect image and roughly overlay it on the originalimage. Once we have performed this rough registration, we then throw thetwo images into an automated scaling and registration program. Theprogram performs a search on the three parameters of x position, yposition, and spatial scale, with the figure of merit being the meansquared error between the two images given any given scale variable andx and y offset. This is a fairly standard image processing methodology.Typically this would be done using generally smooth interpolationtechniques and done to sub-pixel accuracy. The search method can be oneof many, where the simplex method is a typical one.

[0113] Once the optimal scaling and x-y position variables are found,next comes another search on optimizing the black level, brightnessgain, and gamma of the two images. Again, the figure of merit to be usedis mean squared error, and again the simplex or other searchmethodologies can be used to optimize the three variables. After thesethree variables are optimized, we apply their corrections to the suspectimage and align it to exactly the pixel spacing and masking of theoriginal digital image and its mask. We can now call this the standardmask.

[0114] The next step is to subtract the original digital image from thenewly normalized suspect image only within the standard mask region.This new image is called the difference image.

[0115] Then we step through all 32 individual random embedded images,doing a local cross-correlation between the masked difference image andthe masked individual embedded image. ‘Local’ refers to the idea thatone need only start correlating over an offset region of +/−1 pixels ofoffset between the nominal registration points of the two images foundduring the search procedures above. The peak correlation should be veryclose to the nominal registration point of 0,0 offset, and we can addthe 3 by 3 correlation values together to give one grand correlationvalue for each of the 32 individual bits of our 32-bit identificationword.

[0116] After doing this for all 32 bit places and their correspondingrandom images, we have a quasi-floating point sequence of 32 values. Thefirst four values represent our calibration signal of 0101. We now takethe mean of the first and third floating point value and call thisfloating point value ‘0,’ and we take the mean of the second and thefourth value and call this floating point value ‘1.’ We then stepthrough all remaining 28 bit values and assign either a ‘0’ or a ‘1’based simply on which mean value they are closer to. Stated simply, ifthe suspect image is indeed a copy of our original, the embedded 32-bitresulting code should match that of our records, and if it is not acopy, we should get general randomness. The third and the fourthpossibilities of 3) Is a copy but doesn't match identification numberand 4) isn't a copy but does match are, in the case of 3), possible ifthe signal to noise ratio of the process has plummeted, i.e. the‘suspect image’ is truly a very poor copy of the original, and in thecase of 4) is basically one chance in four billion since we were using a32-bit identification number. If we are truly worried about 4), we canjust have a second independent lab perform their own tests on adifferent issue of the same magazine. Finally, checking the error-checkbits against what the values give is one final and possibly overkillcheck on the whole process. In situations where signal to noise is apossible problem, these error checking bits might be eliminated withouttoo much harm.

[0117] Benefits

[0118] Now that a full description of the first embodiment has beendescribed via a detailed example, it is appropriate to point out therationale of some of the process steps and their benefits.

[0119] The ultimate benefits of the foregoing process are that obtainingan identification number is fully independent of the manners and methodsof preparing the difference image. That is to say, the manners ofpreparing the difference image, such as cutting, registering, scaling,etcetera, cannot increase the odds of finding an identification numberwhen none exists; it only helps the signal-to-noise ratio of theidentification process when a true identification number is present.Methods of preparing images for identification can be, different fromeach other even, providing the possibility for multiple independentmethodologies for making a match.

[0120] The ability to obtain a match even on sub-sets of the originalsignal or image is a key point in today's information-rich world.Cutting and pasting both images and sound clips is becoming more common,allowing such an embodiment to be used in detecting a copy even whenoriginal material has been thus corrupted. Finally, the signal to noiseratio of matching should begin to become difficult only when the copymaterial itself has been significantly altered either by noise or bysignificant distortion; both of these also will affect that copy'scommercial value, so that trying to thwart the system can only be doneat the expense of a huge decrease in commercial value.

[0121] An early conception of this technology was the case where only asingle “snowy image” or random signal was added to an original image,i.e. the case where N=1. “Decoding” this signal would involve asubsequent mathematical analysis using (generally statistical)algorithms to make a judgment on the presence or absence of this signal.The reason this approach was abandoned as the preferred embodiment wasthat there was an inherent gray area in the certainty of detecting thepresence or absence of the signal. By moving onward to a multitude ofbit planes, i.e. N>1, combined with simple predefined algorithmsprescribing the manner of choosing between a “0” and a “1”, thecertainty question moved from the realm of expert statistical analysisinto the realm of guessing a random binary event such as a coin flip.This is seen as a powerful feature relative to the intuitive acceptanceof this technology in both the courtroom and the marketplace. Theanalogy which summarizes the inventor's thoughts on this whole questionis as follows: The search for a single identification signal amounts tocalling a coin flip only once, and relying on arcane experts to make thecall; whereas the N>1 embodiment relies on the broadly intuitiveprinciple of correctly calling a coin flip N times in a row. Thissituation is greatly exacerbated, i.e. the problems of “interpretation”of the presence of a single signal, when images and sound clips getsmaller and smaller in extent.

[0122] Another important reason that the N>1 case is preferred over theN=1 embodiment is that in the N=1 case, the manner in which a suspectimage is prepared and manipulated has a direct bearing on the likelihoodof making a positive identification. Thus, the manner with which anexpert makes an identification determination becomes an integral part ofthat determination. The existence of a multitude of mathematical andstatistical approaches to making this determination leave open thepossibility that some tests might make positive identifications whileothers might make negative determinations, inviting further arcanedebate about the relative merits of the various identificationapproaches. The N>1 embodiment avoids this further gray area bypresenting a method where no amount of pre-processing of a signal—otherthan pre-processing which surreptitiously uses knowledge of the privatecode signals—can increase the likelihood of “calling the coin flip Ntimes in a row.”

[0123] The fullest expression of the present system will come when itbecomes an industry standard and numerous independent groups set up withtheir own means or ‘in-house’ brand of applying embedded identificationnumbers and in their decipherment. Numerous independent groupidentification will further enhance the ultimate objectivity of themethod, thereby enhancing its appeal as an industry standard.

[0124] Use of True Polarity in Creating the Composite Embedded CodeSignal

[0125] The foregoing discussion made use of the 0 and 1 formalism ofbinary technology to accomplish its ends. Specifically, the 0's and 1'sof the N-bit identification word directly multiplied their correspondingindividual embedded code signal to form the composite embedded codesignal (step 8, FIG. 2). This approach certainly has its conceptualsimplicity, but the multiplication of an embedded code signal by 0 alongwith the storage of that embedded code contains a kind of inefficiency.

[0126] It is preferred to maintain the formalism of the 0 and 1 natureof the N-bit identification word, but to have the 0's of the word inducea subtraction of their corresponding embedded code signal. Thus, in step8 of FIG. 2, rather than only ‘adding’ the individual embedded codesignals which correspond to a ‘1’ in the N-bit identification word, wewill also ‘subtract’ the individual embedded code signals whichcorrespond to a ‘0’ in the N-bit identification word.

[0127] At first glance this seems to add more apparent noise to thefinal composite signal. But it also increases the energy-wise separationof the 0's from the 1's, and thus the ‘gain’ which is applied in step10, FIG. 2 can be correspondingly lower.

[0128] We can refer to this improvement as the use of true polarity. Themain advantage of this improvement can largely be summarized as‘informational efficiency.’

[0129] ‘Perceptual Orthogonality’ of the Individual Embedded CodeSignals

[0130] The foregoing discussion contemplates the use of generally randomnoise-like signals as the individual embedded code signals. This isperhaps the simplest form of signal to generate. However, there is aform of informational optimization which can be applied to the set ofthe individual embedded signals, which the applicant describes under therubric ‘perceptual orthogonality.’ This term is loosely based on themathematical concept of the orthogonality of vectors, with the currentadditional requirement that this orthogonality should maximize thesignal energy of the identification information while maintaining itbelow some perceptibility threshold. Put another way, the embedded codesignals need not necessarily be random in nature.

[0131] Use and Improvements of the First Embodiment in the Field ofEmulsion-Based Photography

[0132] The foregoing discussion outlined techniques that are applicableto photographic materials. The following section explores the details ofthis area further and discloses certain improvements which lendthemselves to a broad range of applications.

[0133] The first area to be discussed involves the pre-application orpre-exposing of a serial number onto traditional photographic products,such as negative film, print paper, transparencies, etc. In general,this is a way to embed a priori unique serial numbers (and byimplication, ownership and tracking information) into photographicmaterial. The serial numbers themselves would be a permanent part of thenormally exposed picture, as opposed to being relegated to the marginsor stamped on the back of a printed photograph, which all requireseparate locations and separate methods of copying. The ‘serial number’as it is called here is generally synonymous with the N-bitidentification word, only now we are using a more common industrialterminology.

[0134] In FIG. 2, step 11, the disclosure calls for the storage of the“original [image]” along with code images. Then in FIG. 3, step 9, itdirects that the original be subtracted from the suspect image, therebyleaving the possible identification codes plus whatever noise andcorruption has accumulated. Therefore, the previous disclosure made thetacit assumption that there exists an original without the compositeembedded signals.

[0135] Now in the case of selling print paper and other duplication filmproducts, this will still be the case, i.e., an “original” without theembedded codes will indeed exist and the basic methodology of the firstembodiment can be employed. The original film serves perfectly well asan ‘unencoded original.’

[0136] However, in the case where pre-exposed negative film is used, thecomposite embedded signal pre-exists on the original film and thus therewill never be an “original” separate from the pre-embedded signal. It isthis latter case, therefore, which will be examined a bit more closely,along with observations on how to best use the principles discussedabove (the former cases adhering to the previously outlined methods).

[0137] The clearest point of departure for the case of pre-numberednegative film, i.e. negative film which has had each and every framepre-exposed with a very faint and unique composite embedded signal,comes at step 9 of FIG. 3 as previously noted. There are certainly otherdifferences as well, but they are mostly logistical in nature, such ashow and when to embed the signals on the film, how to store the codenumbers and serial number, etc. Obviously the pre-exposing of film wouldinvolve a major change to the general mass production process ofcreating and packaging film.

[0138]FIG. 4 has a schematic outlining one potential post-hoc mechanismfor pre-exposing film. ‘Post-hoc’ refers to applying a process after thefull common manufacturing process of film has already taken place.Eventually, economies of scale may dictate placing this pre-exposingprocess directly into the chain of manufacturing film. Depicted in FIG.4 is what is commonly known as a film writing system. The computer, 106,displays the composite signal produced in step 8, FIG. 2, on itsphosphor screen. A given frame of film is then exposed by imaging thisphosphor screen, where the exposure level is generally very faint, i.e.generally imperceptible. Clearly, the marketplace will set its owndemands on how faint this should be, that is, the level of added‘graininess’ as practitioners would put it. Each frame of film issequentially exposed, where in general the composite image displayed onthe CRT 102 is changed for each and every frame, thereby giving eachframe of film a different serial number. The transfer lens 104highlights the focal conjugate planes of a film frame and the CRT face.

[0139] Getting back to the applying the principles of the foregoingembodiment in the case of pre-exposed negative film . . . At step 9,FIG. 3, if we were to subtract the “original” with its embedded code, wewould obviously be “erasing” the code as well since the code is anintegral part of the original. Fortunately, remedies do exist andidentifications can still be made. However, it will be a challenge toartisans who refine this embodiment to have the signal to noise ratio ofthe identification process in the pre-exposed negative case approach thesignal to noise ratio of the case where the un-encoded original exists.

[0140] A succinct definition of the problem is in order at this point.Given a suspect picture (signal), find the embedded identification codeIF a code exists at al. The problem reduces to one of finding theamplitude of each and every individual embedded code signal within thesuspect picture, not only within the context of noise and corruption aswas previously explained, but now also within the context of thecoupling between a captured image and the codes. ‘Coupling’ here refersto the idea that the captured image “randomly biases” thecross-correlation.

[0141] So, bearing in mind this additional item of signal coupling, theidentification process now estimates the signal amplitude of each andevery individual embedded code signal (as opposed to taking thecross-correlation result of step 12, FIG. 3). If our identificationsignal exists in the suspect picture, the amplitudes thus found willsplit into a polarity with positive amplitudes being assigned a ‘1’ andnegative amplitudes being assigned a ‘0’. Our unique identification codemanifests itself. If, on the other hand, no such identification codeexists or it is someone else's code, then a random gaussian-likedistribution of amplitudes is found with a random hash of values.

[0142] It remains to provide a few more details on how the amplitudes ofthe individual embedded codes are found. Again, fortunately, this exactproblem has been treated in other technological applications. Besides,throw this problem and a little food into a crowded room ofmathematicians and statisticians and surely a half dozen optimizedmethodologies will pop out after some reasonable period of time. It is arather cleanly defined problem.

[0143] One specific example solution comes from the field ofastronomical imaging. Here, it is a mature prior art to subtract out a“thermal noise frame” from a given CCD image of an object. Often,however, it is not precisely known what scaling factor to use insubtracting the thermal frame, and a search for the correct scalingfactor is performed. This is precisely the task of this step of thepresent embodiment.

[0144] General practice merely performs a common search algorithm on thescaling factor, where a scaling factor is chosen and a new image iscreated according to:

NEW IMAGE=ACQUIRED IMAGE−SCALE * THERMAL IMAGE  (4)

[0145] The new image is applied to the fast fourier transform routineand a scale factor is eventually found which minimizes the integratedhigh frequency content of the new image. This general type of searchoperation with its minimization of a particular quantity is exceedinglycommon. The scale factor thus found is the sought-for “amplitude.”Refinements which are contemplated but not yet implemented are where thecoupling of the higher derivatives of the acquired image and theembedded codes are estimated and removed from the calculated scalefactor. In other words, certain bias effects from the coupling mentionedearlier are present and should be eventually accounted for and removedboth through theoretical and empirical experimentation.

[0146] Use and Improvements in the Detection of Signal or ImageAlteration

[0147] Apart from the basic need of identifying a signal or image as awhole, there is also a rather ubiquitous need to detect possiblealterations to a signal or image. The following section describes howthe foregoing embodiment, with certain modifications and improvements,can be used as a powerful tool in this area. The potential scenarios andapplications of detecting alterations are innumerable.

[0148] To first summarize, assume that we have a given signal or imagewhich has been positively identified using the basic methods outlinedabove. In other words, we know its N-bit identification word, itsindividual embedded code signals, and its composite embedded code. Wecan then fairly simply create a spatial map of the composite code'samplitude within our given signal or image. Furthermore, we can dividethis amplitude map by the known composite code's spatial amplitude,giving a normalized map, i.e. a map which should fluctuate about someglobal mean value. By simple examination of this map, we can visuallydetect any areas which have been significantly altered wherein the valueof the normalized amplitude dips below some statistically set thresholdbased purely on typical noise and corruption (error).

[0149] The details of implementing the creation of the amplitude maphave a variety of choices. One is to perform the same procedure which isused to determine the signal amplitude as described above, only now westep and repeat the multiplication of any given area of the signal/imagewith a gaussian weight function centered about the area we areinvestigating.

[0150] Universal Versus Custom Codes

[0151] The disclosure thus far has outlined how each and every sourcesignal has its own unique set of individual embedded code signals. Thisentails the storage of a significant amount of additional codeinformation above and beyond the original, and many applications maymerit some form of economizing.

[0152] One such approach to economizing is to have a given set ofindividual embedded code signals be common to a batch of sourcematerials. For example, one thousand images can all utilize the samebasic set of individual embedded code signals. The storage requirementsof these codes then become a small fraction of the overall storagerequirements of the source material.

[0153] Furthermore, some applications can utilize a universal set ofindividual embedded code signals, i.e., codes which remain the same forall instances of distributed material. This type of requirement would beseen by systems which wish to hide the N-bit identification word itself,yet have standardized equipment be able to read that word. This can beused in systems which make go/no go decisions at point-of-readlocations. The potential drawback to this set-up is that the universalcodes are more prone to be sleuthed or stolen; therefore they will notbe as secure as the apparatus and methodology of the previouslydisclosed arrangement. Perhaps this is just the difference between ‘highsecurity’ and ‘air-tight security,’ a distinction carrying little weightwith the bulk of potential applications.

[0154] Use in Printing, Paper, Documents, Plastic Coated IdentificationCards, and Other Material Where Global Embedded Codes Can Be Imprinted

[0155] The term ‘signal’ is often used narrowly to refer to digital datainformation, audio signals, images, etc. A broader interpretation of‘signal,’ and the one more generally intended, includes any form ofmodulation of any material whatsoever. Thus, the micro-topology of apiece of common paper becomes a ‘signal’ (e.g. it height as a functionof x-y coordinates). The reflective properties of a flat piece ofplastic (as a function of space also) becomes a signal. The point isthat photographic emulsions, audio signals, and digitized informationare not the only types of signals capable of utilizing the principlesdescribed herein.

[0156] As a case in point, a machine very much resembling a brailleprinting machine can be designed so as to imprint unique ‘noise-like’indentations as outlined above. These indentations can be applied with apressure which is much smaller than is typically applied in creatingbraille, to the point where the patterns are not noticed by a normaluser of the paper. But by following the steps of the present disclosureand applying them via the mechanism of micro-indentations, a uniqueidentification code can be placed onto any given sheet of paper, be itintended for everyday stationary purposes, or be it for importantdocuments, legal tender, or other secured material.

[0157] The reading of the identification material in such an embodimentgenerally proceeds by merely reading the document optically at a varietyof angles. This would become an inexpensive method for deducing themicro-topology of the paper surface. Certainly other forms of readingthe topology of the paper are possible as well.

[0158] In the case of plastic encased material such as identificationcards, e.g. driver's licenses, a similar braille-like impressionsmachine can be utilized to imprint unique identification codes. Subtlelayers of photoreactive materials can also be embedded inside theplastic and ‘exposed.’

[0159] It is clear that wherever a material exists which is capable ofbeing modulated by ‘noise-like’ signals, that material is an appropriatecarrier for unique identification codes and utilization of theprinciples disclosed herein. All that remains is the matter ofeconomically applying the identification information and maintaining thesignal level below an acceptability threshold which each and everyapplication will define for itself.

REAL TIME ENCODER

[0160] While the first class of embodiments most commonly employs astandard microprocessor or computer to perform the encodation of animage or signal, it is possible to utilize a custom encodation devicewhich may be faster than a typical Von Neuman-type processor. Such asystem can be utilized with all manner of serial data streams.

[0161] Music and videotape recordings are examples of serial datastreams—data streams which are often pirated. It would assistenforcement efforts if authorized recordings were encoded withidentification data so that pirated knock-offs could be traced to theoriginal from which they were made.

[0162] Piracy is but one concern driving the need for applicant'stechnology. Another is authentication. Often it is important to confirmthat a given set of data is really what it is purported to be (oftenseveral years after its generation).

[0163] To address these and other needs, the system 200 of FIG. 5 can beemployed. System 200 can be thought of as an identification coding blackbox 202. The system 200 receives an input signal (sometimes termed the“master” or “unencoded” signal) and a code word, and produces (generallyin real time) an identification-coded output signal. (Usually, thesystem provides key data for use in later decoding.)

[0164] The contents of the “black box” 202 can take various forms. Anexemplary black box system is shown in FIG. 6 and includes a look-uptable 204, a digital noise source 206, first and second scalers 208,210, an adder/subtracter 212, a memory 214, and a register 216.

[0165] The input signal (which in the illustrated embodiment is an 8-20bit data signal provided at a rate of one million samples per second,but which in other embodiments could be an analog signal if appropriateA/D and D/A conversion is provided) is applied from an input 218 to theaddress input 220 of the look-up table 204. For each input sample (i.e.look-up table address), the table provides a corresponding 8-bit digitaloutput word. This output word is used as a scaling factor that isapplied to one input of the first scaler 208.

[0166] The first scaler 208 has a second input, to which is applied an8-bit digital noise signal from source 206. (In the illustratedembodiment, the noise source 206 comprises an analog noise source 222and an analog-to-digital converter 224 although, again, otherimplementations can be used.) The noise source in the illustratedembodiment has a zero mean output value, with a full width half maximum(FWHM) of 50-100 digital numbers (e.g. from −75 to +75).

[0167] The first scaler 208 multiplies the two 8-bit words at its inputs(scale factor and noise) to produce—for each sample of the system inputsignal—a 16-bit output word. Since the noise signal has a zero meanvalue, the output of the first scaler likewise has a zero mean value.

[0168] The output of the first scaler 208 is applied to the input of thesecond scaler 210. The second scaler serves a global scaling function,establishing the absolute magnitude of the identification signal thatwill ultimately be embedded into the input data signal. The scalingfactor is set through a scale control device 226 (which may take anumber of forms, from a simple rheostat to a graphically implementedcontrol in a graphical user interface), permitting this factor to bechanged in accordance with the requirements of different applications.The second scaler 210 provides on its output line 228 a scaled noisesignal. Each sample of this scaled noise signal is successively storedin the memory 214.

[0169] (In the illustrated embodiment, the output from the first scaler208 may range between −1500 and +1500 (decimal), while the output fromthe second scaler 210 is in the low single digits, (such as between −2and +2).)

[0170] Register 216 stores a multi-bit identification code word. In theillustrated embodiment this code word consists of 8 bits, althoughlarger code words (up to hundreds of bits) are commonly used. These bitsare referenced, one at a time, to control how the input signal ismodulated with the scaled noise signal.

[0171] In particular, a pointer 230 is cycled sequentially through thebit positions of the code word in register 216 to provide a control bitof “0” or “1” to a control input 232 of the adder/subtracter 212. If,for a particular input signal sample, the control bit is a “1”, thescaled noise signal sample on line 232 is added to the input signalsample. If the control bit is a “0”, the scaled noise signal sample issubtracted from the input signal sample. The output 234 from theadder/subtracter 212 provides the black box's output signal.

[0172] The addition or subtraction of the scaled noise signal inaccordance with the bits of the code word effects a modulation of theinput signal that is generally imperceptible. However, with knowledge ofthe contents of the memory 214, a user can later decode the encoding,determining the code number used in the original encoding process.(Actually, use of memory 214 is optional, as explained below.)

[0173] It will be recognized that the encoded signal can be distributedin well known ways, including converted to printed image form, stored onmagnetic media (floppy diskette, analog or DAT tape, etc.), CD-ROM, etc.etc.

[0174] Decoding

[0175] A variety of techniques can be used to determine theidentification code with which a suspect signal has been encoded. Twoare discussed below. The first is less preferable than the latter formost applications, but is discussed herein so that the reader may have afuller context within which to understand the disclosed technology.

[0176] More particularly, the first decoding method is a differencemethod, relying on subtraction of corresponding samples of the originalsignal from the suspect signal to obtain difference samples, which arethen examined (typically individually) for deterministic coding indicia(i.e. the stored noise data). This approach may thus be termed a“sample-based, deterministic” decoding technique.

[0177] The second decoding method does not make use of the originalsignal. Nor does it examine particular samples looking for predeterminednoise characteristics. Rather, the statistics of the suspect signal (ora portion thereof) are considered in the aggregate and analyzed todiscern the presence of identification coding that permeates the entiresignal. The reference to permeation means the entire identification codecan be discerned from a small fragment of the suspect signal. Thislatter approach may thus be termed a “holographic, statistical” decodingtechnique.

[0178] Both of these methods begin by registering the suspect signal tomatch the original. This entails scaling (e.g. in amplitude, duration,color balance, etc.), and sampling (or resampling) to restore theoriginal sample rate. As in the earlier described embodiment, there area variety of well understood techniques by which the operationsassociated with this registration function can be performed.

[0179] As noted, the first decoding approach proceeds by subtracting theoriginal signal from the registered, suspect signal, leaving adifference signal. The polarity of successive difference signal samplescan then be compared with the polarities of the corresponding storednoise signal samples to determine the identification code. That is, ifthe polarity of the first difference signal sample matches that of thefirst noise signal sample, then the first bit of the identification codeis a “1.” (In such case, the polarity of the 9th, 17th, 25th, etc.samples should also all be positive.) If the polarity of the firstdifference signal sample is opposite that of the corresponding noisesignal sample, then the first bit of the identification code is a “0.”

[0180] By conducting the foregoing analysis with eight successivesamples of the difference signal, the sequence of bits that comprise theoriginal code word can be determined. If, as in the illustratedembodiment, pointer 230 stepped through the code word one bit at a time,beginning with the first bit, during encoding, then the first 8 samplesof the difference signal can be analyzed to uniquely determine the valueof the 8-bit code word.

[0181] In a noise-free world (speaking here of noise independent of thatwith which the identification coding is effected), the foregoinganalysis would always yield the correct identification code. But aprocess that is only applicable in a noise-free world is of limitedutility indeed.

[0182] (Further, accurate identification of signals in noise-freecontexts can be handled in a variety of other, simpler ways: e.g.checksums; statistically improbable correspondence between suspect andoriginal signals; etc.)

[0183] While noise-induced aberrations in decoding can be dealt with—tosome degree—by analyzing large portions of the signal, such aberrationsstill place a practical ceiling on the confidence of the process.Further, the villain that must be confronted is not always as benign asrandom noise. Rather, it increasingly takes the form of human-causedcorruption, distortion, manipulation, etc. In such cases, the desireddegree of identification confidence can only be achieved by otherapproaches.

[0184] The illustrated embodiment (the “holographic, statistical”decoding technique) relies on recombining the suspect signal withcertain noise data (typically the data stored in memory 214), andanalyzing the entropy of the resulting signal. “Entropy” need not beunderstood in its most strict mathematical definition, it being merelythe most concise word to describe randomness (noise, smoothness,snowiness, etc.).

[0185] Most serial data signals are not random. That is, one sampleusually correlates—to some degree—with the adjacent samples. Noise, incontrast, typically is random. If a random signal (e.g. noise) is addedto (or subtracted from) a non-random signal, the entropy of theresulting signal generally increases. That is, the resulting signal hasmore random variations than the original signal. This is the case withthe encoded output signal produced by the present encoding process; ithas more entropy than the original, unencoded signal.

[0186] If, in contrast, the addition of a random signal to (orsubtraction from) a non-random signal reduces entropy, then somethingunusual is happening. It is this anomaly that the present decodingprocess uses to detect embedded identification coding.

[0187] To fully understand this entropy-based decoding method, it isfirst helpful to highlight a characteristic of the original encodingprocess: the similar treatment of every eighth sample.

[0188] In the encoding process discussed above, the pointer 230increments through the code word, one bit for each successive sample ofthe input signal. If the code word is eight bits in length, then thepointer returns to the same bit position in the code word every eighthsignal sample. If this bit is a “1”, noise is added to the input signal;if this bit is a “0”, noise is subtracted from the input signal. Due tothe cyclic progression of the pointer 230, every eighth sample of anencoded signal thus shares a characteristic: they are all eitheraugmented by the corresponding noise data (which may be negative), orthey are all diminished, depending on whether the bit of the code wordthen being addressed by pointer 230 is a “1” or a “0”.

[0189] To exploit this characteristic, the entropy-based decodingprocess treats every eighth sample of the suspect signal in likefashion. In particular, the process begins by adding to the 1st, 9th,17th, 25th, etc. samples of the suspect signal the corresponding scalednoise signal values stored in the memory 214 (i.e. those stored in the1st, 9th, 17th, 25th, etc., memory locations, respectively). The entropyof the resulting signal (i.e. the suspect signal with every 8th samplemodified) is then computed.

[0190] (Computation of a signal's entropy or randomness is wellunderstood by artisans in this field. One generally accepted techniqueis to take the derivative of the signal at each sample point, squarethese values, and then sum over the entire signal. However, a variety ofother well known techniques can alternatively be used.)

[0191] The foregoing step is then repeated, this time subtracting thestored noise values from the 1st, 9th, 17th, 25 etc. suspect signalsamples.

[0192] One of these two operations will undo the encoding process andreduce the resulting signal's entropy; the other will aggravate it. Ifadding the noise data in memory 214 to the suspect signal reduces itsentropy, then this data must earlier have been subtracted from theoriginal signal. This indicates that pointer 230 was pointing to a “0”bit when these samples were encoded. (A “0” at the control input ofadder/subtracter 212 caused it to subtract the scaled noise from theinput signal.)

[0193] Conversely, if subtracting the noise data from every eighthsample of the suspect signal reduces its entropy, then the encodingprocess must have earlier added this noise. This indicates that pointer230 was pointing to a “1” bit when samples 1, 9, 17, 25, etc., wereencoded.

[0194] By noting whether entropy decreases by (a) adding or (b)subtracting the stored noise data to/from the suspect signal, it can bedetermined that the first bit of the code word is (a) a “0”, or (b) a“1”.

[0195] The foregoing operations are then conducted for the group ofspaced samples of the suspect signal beginning with the second sample(i.e. 2, 10, 18, 26 . . . ). The entropy of the resulting signalsindicate whether the second bit of the code word is a “0” or a “1”.Likewise with the following 6 groups of spaced samples in the suspectsignal, until all 8 bits of the code word have been discerned.

[0196] It will be appreciated that the foregoing approach is notsensitive to corruption mechanisms that alter the values of individualsamples; instead, the process considers the entropy of the signal as awhole, yielding a high degree of confidence in the results. Further,even small excerpts of the signal can be analyzed in this manner,permitting piracy of even small details of an original work to bedetected. The results are thus statistically robust, both in the face ofnatural and human corruption of the suspect signal.

[0197] It will further be appreciated that the use of an N-bit code wordin this real time embodiment provides benefits analogous to thosediscussed above in connection with the batch encoding system. (Indeed,the present embodiment may be conceptualized as making use of Ndifferent noise signals, just as in the batch encoding system. The firstnoise signal is a signal having the same extent as the input signal, andcomprising the scaled noise signal at the 1st, 9th, 17th, 25th, etc.,samples (assuming N=8), with zeroes at the intervening samples. Thesecond noise signal is a similar one comprising the scaled noise signalat the 2d, 10th, 18th, 26th, etc., samples, with zeroes at theintervening samples. Etc. These signals are all combined to provide acomposite noise signal.) One of the important advantages inherent insuch a system is the high degree of statistical confidence (confidencewhich doubles with each successive bit of the identification code) thata match is really a match. The system does not rely on subjectiveevaluation of a suspect signal for a single, deterministic embedded codesignal.

[0198] Illustrative Variations

[0199] From the foregoing description, it will be recognized thatnumerous modifications can be made to the illustrated systems withoutchanging the fundamental principles. A few of these variations aredescribed below.

[0200] The above-described decoding process tries both adding andsubtracting stored noise data to/from the suspect signal in order tofind which operation reduces entropy. In other embodiments, only one ofthese operations needs to be conducted. For example, in one alternativedecoding process the stored noise data corresponding to every eighthsample of the suspect signal is only added to said samples. If theentropy of the resulting signal is thereby increased, then thecorresponding bit of the code word is a “1” (i.e. this noise was addedearlier, during the encoding process, so adding it again only compoundsthe signal's randomness). If the entropy of the resulting signal isthereby decreased, then the corresponding bit of the code word is a “0”.A further test of entropy if the stored noise samples are subtracted isnot required.

[0201] The statistical reliability of the identification process (codingand decoding) can be designed to exceed virtually any confidencethreshold (e.g. 99.9%, 99.99%, 99.999%, etc. confidence) by appropriateselection of the global scaling factors, etc. Additional confidence inany given application (unnecessary in most applications) can be achievedby rechecking the decoding process.

[0202] One way to recheck the decoding process is to remove the storednoise data from the suspect signal in accordance with the bits of thediscerned code word, yielding a “restored” signal (e.g. if the first bitof the code word is found to be “1,” then the noise samples stored inthe 1st, 9th, 17th, etc. locations of the memory 214 are subtracted fromthe corresponding samples of the suspect signal). The entropy of therestored signal is measured and used as a baseline in furthermeasurements. Next, the process is repeated, this time removing thestored noise data from the suspect signal in accordance with a modifiedcode word. The modified code word is the same as the discerned codeword, except 1 bit is toggled (e.g. the first). The entropy of theresulting signal is determined, and compared with the baseline. If thetoggling of the bit in the discerned code word resulted in increasedentropy, then the accuracy of that bit of the discerned code word isconfirmed. The process repeats, each time with a different bit of thediscerned code word toggled, until all bits of the code word have beenso checked. Each change should result in an increase in entropy comparedto the baseline value.

[0203] The data stored in memory 214 is subject to a variety ofalternatives. In the foregoing discussion, memory 214 contains thescaled noise data. In other embodiments, the unscaled noise data can bestored instead.

[0204] In still other embodiments, it can be desirable to store at leastpart of the input signal itself in memory 214. For example, the memorycan allocate 8 signed bits to the noise sample, and 16 bits to store themost significant bits of an 18- or 20-bit audio signal sample. This hasseveral benefits. One is that it simplifies registration of a “suspect”signal. Another is that, in the case of encoding an input signal whichwas already encoded, the data in memory 214 can be used to discern whichof the encoding processes was performed first. That is, from the inputsignal data in memory 214 (albeit incomplete), it is generally possibleto determine with which of two code words it has been encoded.

[0205] Yet another alternative for memory 214 is that is can be omittedaltogether.

[0206] One way this can be achieved is to use a deterministic noisesource in the encoding process, such as an algorithmic noise generatorseeded with a known key number. The same deterministic noise source,seeded with the same key number, can be used in the decoding process. Insuch an arrangement, only the key number needs be stored for later usein decoding, instead of the large data set usually stored in memory 214.

[0207] Alternatively, if the noise signal added during encoding does nothave a zero mean value, and the length N of the code word is known tothe decoder, then a universal decoding process can be implemented. Thisprocess uses the same entropy test as the foregoing procedures, butcycles through possible code words, adding/subtracting a small dummynoise value (e.g. less than the expected mean noise value) to every Nthsample of the suspect signal, in accordance with the bits of the codeword being tested, until a reduction in entropy is noted. Such anapproach is not favored for most applications, however, because itoffers less security than the other embodiments (e.g. it is subject tocracking by brute force).

[0208] Many applications are well served by the embodiment illustratedin FIG. 7, in which different code words are used to produce severaldifferently encoded versions of an input signal, each making use of thesame noise data. More particularly, the embodiment 240 of FIG. 7includes a noise store 242 into which noise from source 206 is writtenduring the identification-coding of the input signal with a first codeword. (The noise source of FIG. 7 is shown outside of the real timeencoder 202 for convenience of illustration.) Thereafter, additionalidentification-coded versions of the input signal can be produced byreading the stored noise data from the store and using it in conjunctionwith second through Nth code words to encode the signal. (Whilebinary-sequential code words are illustrated in FIG. 7, in otherembodiments arbitrary sequences of code words can be employed.) Withsuch an arrangement, a great number of differently-encoded signals canbe produced, without requiring a proportionally-sized long term noisememory. Instead, a fixed amount of noise data is stored, whetherencoding an original once or a thousand times.

[0209] (If desired, several differently-coded output signals can beproduced at the same time, rather than seriatim. One such implementationincludes a plurality of adder/subtracter circuits 212, each driven withthe same input signal and with the same scaled noise signal, but withdifferent code words. Each, then, produces a differently encoded outputsignal.)

[0210] In applications having a great number of differently-encodedversions of the same original, it will be recognized that the decodingprocess need not always discern every bit of the code word. Sometimes,for example, the application may require identifying only a group ofcodes to which the suspect signal belongs. (E.g., high order bits of thecode word might indicate an organization to which several differentlycoded versions of the same source material were provided, with low-orderbits identifying specific copies. To identify the organization withwhich a suspect signal is associated, it may not be necessary to examinethe low order bits, since the organization can be identified by the highorder bits alone.) If the identification requirements can be met bydiscerning a subset of the code word bits in the suspect signal, thedecoding process can be shortened.

[0211] Some applications may be best served by restarting the encodingprocess—sometimes with a different code word—several times within anintegral work. Consider, as an example, videotaped productions (e.g.television programming). Each frame of a videotaped production can beidentification-coded with a unique code number, processed in real-timewith an arrangement 248 like that shown in FIG. 8. Each time a verticalretrace is detected by sync detector 250, the noise source 206 resets(e.g. to repeat the sequence just produced) and an identification codeincrements to the next value. Each frame of the videotape is therebyuniquely identification-coded. Typically, the encoded signal is storedon a videotape for long term storage (although other storage media,including laser disks, can be used).

[0212] Returning to the encoding apparatus, the look-up table 204 in theillustrated embodiment exploits the fact that high amplitude samples ofthe input data signal can tolerate (without objectionable degradation ofthe output signal) a higher level of encoded identification coding thancan low amplitude input samples. Thus, for example, input data sampleshaving decimal values of 0, 1 or 2 may be correspond (in the look-uptable 204) to scale factors of unity (or even zero), whereas input datasamples having values in excess of 200 may correspond to scale factorsof 15. Generally speaking, the scale factors and the input sample valuescorrespond by a square root relation. That is, a four-fold increase in avalue of the sampled input signal corresponds to approximately atwo-fold increase in a value of the scaling factor associated therewith.

[0213] (The parenthetical reference to zero as a scaling factor alludesto cases, e.g., in which the source signal is temporally or spatiallydevoid of information content. In an image, for example, a regioncharacterized by several contiguous sample values of zero may correspondto a jet black region of the frame. A scaling value of zero may beappropriate here since there is essentially no image data to bepirated.)

[0214] Continuing with the encoding process, those skilled in the artwill recognized the potential for “rail errors” in the illustratedembodiment. For example, if the input signal consists of 8-bit samples,and the samples span the entire range from 0 to 255 (decimal), then theaddition or subtraction of scaled noise to/from the input signal mayproduce output signals that cannot be represented by 8 bits (e.g. −2, or257). A number of well-understood techniques exist to rectify thissituation, some of them proactive and some of them reactive. (Amongthese known techniques are: specifying that the input signal shall nothave samples in the range of 0-4 or 251-255, thereby safely permittingmodulation by the noise signal; or including provision for detecting andadaptively modifying input signal samples that would otherwise causerail errors.)

[0215] While the illustrated embodiment describes stepping through thecode word sequentially, one bit at a time, to control modulation ofsuccessive bits of the input signal, it will be appreciated that thebits of the code word can be used other than sequentially for thispurpose. Indeed, bits of the code word can be selected in accordancewith any predetermined algorithm.

[0216] The dynamic scaling of the noise signal based on theinstantaneous value of the input signal is an optimization that can beomitted in many embodiments. That is, the look-up table 204 and thefirst scaler 208 can be omitted entirely, and the signal from thedigital noise source 206 applied directly (or through the second, globalscaler 210) to the adder/subtracter 212.

[0217] It will be further recognized that the use of a zero-mean noisesource simplifies the illustrated embodiment, but is not essential. Anoise signal with another mean value can readily be used, and D.C.compensation (if needed) can be effected elsewhere in the system.

[0218] The use of a noise source 206 is also optional. A variety ofother signal sources can be used, depending on application-dependentconstraints (e.g. the threshold at which the encoded identificationsignal becomes perceptible). In many instances, the level of theembedded identification signal is low enough that the identificationsignal needn't have a random aspect; it is imperceptible regardless ofits nature. A pseudo random source 206, however, is usually desiredbecause it provides the greatest identification code signal S/N ratio (asomewhat awkward term in this instance) for a level of imperceptibilityof the embedded identification signal.

[0219] It will be recognized that identification coding need not occurafter a signal has been reduced to stored form as data (i.e. “fixed intangible form,” in the words of the U.S. Copyright Act). Consider, forexample, the case of popular musicians whose performances are oftenrecorded illicitly. By identification coding the audio before it drivesconcert hall speakers, unauthorized recordings of the concert can betraced to a particular place and time. Likewise, live audio sources suchas 911 emergency calls can be encoded prior to recording so as tofacilitate their later authentication.

[0220] While the black box embodiment has been described as a standalone unit, it will be recognized that it can be integrated into anumber of different tools/instruments as a component. One is a scanner,which can embed identification codes in the scanned output data. (Thecodes can simply serve to memorialize that the data was generated by aparticular scanner). Another is in creativity software, such as populardrawing/graphics/animation/paint programs offered by Adobe, Macromedia,Corel, and the like.

[0221] Finally, while the real-time encoder 202 has been illustratedwith reference to a particular hardware implementation, it will berecognized that a variety of other implementations can alternatively beemployed. Some utilize other hardware configurations. Others make use ofsoftware routines for some or all of the illustrated functional blocks.(The software routines can be executed on any number of differentgeneral purpose programmable computers, such as 80×86 PC-compatiblecomputers, RISC-based workstations, etc.)

TYPES OF NOISE, QUASI-NOISE, AND OPTIMIZED-NOISE

[0222] Heretofore this disclosure postulated Gaussian noise, “whitenoise,” and noise generated directly from application instrumentation asa few of the many examples of the kind of carrier signal appropriate tocarry a single bit of information throughout an image or signal. It ispossible to be even more proactive in “designing” characteristics ofnoise in order to achieve certain goals. The “design” of using Gaussianor instrumental noise was aimed somewhat toward “absolute” security.This section of the disclosure takes a look at other considerations forthe design of the noise signals which may be considered the ultimatecarriers of the identification information.

[0223] For some applications it might be advantageous to design thenoise carrier signal (e.g. the Nth embedded code signal in the firstembodiment; the scaled noise data in the second embodiment), so as toprovide more absolute signal strength to the identification signalrelative to the perceptibility of that signal. One example is thefollowing. It is recognized that a true Gaussian noise signal has thevalue ‘0’ occur most frequently, followed by 1 and −1 at equalprobabilities to each other but lower than ‘0’, 2 and −2 next, and soon. Clearly, the value zero carries no information as it is used in suchan embodiment. Thus, one simple adjustment, or design, would be that anytime a zero occurs in the generation of the embedded code signal, a newprocess takes over, whereby the value is converted “randomly” to eithera 1 or a −1. In logical terms, a decision would be made: if ‘0’, thenrandom(1, −1). The histogram of such a process would appear as aGaussian/Poissonian type distribution, except that the 0 bin would beempty and the 1 and −1 bin would be increased by half the usualhistogram value of the 0 bin.

[0224] In this case, identification signal energy would always beapplied at all parts of the signal. A few of the trade-offs include:there is a (probably negligible) lowering of security of the codes inthat a “deterministic component” is a part of generating the noisesignal. The reason this might be completely negligible is that we stillwind up with a coin flip type situation on randomly choosing the 1 orthe −1. Another trade-off is that this type of designed noise will havea higher threshold of perceptibility, and will only be applicable toapplications where the least significant bit of a data stream or imageis already negligible relative to the commercial value of the material,i.e. if the least significant bit were stripped from the signal (for allsignal samples), no one would know the difference and the value of thematerial would not suffer. This blocking of the zero value in theexample above is but one of many ways to “optimize” the noise propertiesof the signal carrier, as anyone in the art can realize. We refer tothis also as “quasi-noise” in the sense that natural noise can betransformed in a pre-determined way into signals which for all intentsand purposes will read as noise. Also, cryptographic methods andalgorithms can easily, and often by definition, create signals which areperceived as completely random. Thus the word “noise” can have differentconnotations, primarily between that as defined subjectively by anobserver or listener, and that defined mathematically. The difference ofthe latter is that mathematical noise has different properties ofsecurity and the simplicity with which it can either be “sleuthed” orthe simplicity with which instruments can “automatically recognize” theexistence of this noise.

[0225] “Universal” Embedded Codes

[0226] The bulk of this disclosure teaches that for absolute security,the noise-like embedded code signals which carry the bits of informationof the identification signal should be unique to each and every encodedsignal, or, slightly less restrictive, that embedded code signals shouldbe generated sparingly, such as using the same embedded codes for abatch of 1000 pieces of film, for example. Be this as it may, there is awhole other approach to this issue wherein the use of what we will call“universal” embedded code signals can open up large new applications forthis technology. The economics of these uses would be such that the defacto lowered security of these universal codes (e.g. they would beanalyzable by time honored cryptographic decoding methods, and thuspotentially thwarted or reversed) would be economically negligiblerelative to the economic gains that the intended uses would provide.Piracy and illegitimate uses would become merely a predictable “cost”and a source of uncollected revenue only; a simple line item in aneconomic analysis of the whole. A good analogy of this is in the cableindustry and the scrambling of video signals. Everybody seems to knowthat crafty, skilled technical individuals, who may be generally lawabiding citizens, can climb a ladder and flip a few wires in their cablejunction box in order to get all the pay channels for free. The cableindustry knows this and takes active measures to stop it and prosecutethose caught, but the “lost revenue” derived from this practice remainsprevalent but almost negligible as a percentage of profits gained fromthe scrambling system as a whole. The scrambling system as a whole is aneconomic success despite its lack of “absolute security.”

[0227] The same holds true for applications of this technology wherein,for the price of lowering security by some amount, large economicopportunity presents itself. This section first describes what is meantby universal codes, then moves on to some of the interesting uses towhich these codes can be applied.

[0228] Universal embedded codes generally refer to the idea thatknowledge of the exact codes can be distributed. The embedded codeswon't be put into a dark safe never to be touched until litigationarises (as alluded to in other parts of this disclosure), but insteadwill be distributed to various locations where on-the-spot analysis cantake place. Generally this distribution will still take place within asecurity controlled environment, meaning that steps will be taken tolimit the knowledge of the codes to those with a need to know.Instrumentation which attempts to automatically detect copyrightedmaterial is a non-human example of “something” with a need to know thecodes.

[0229] There are many ways to implement the idea of universal codes,each with their own merits regarding any given application. For thepurposes of teaching this art, we separate these approaches into threebroad categories: universal codes based on libraries, universal codesbased on deterministic formula, and universal codes based on pre-definedindustry standard patterns. A rough rule of thumb is that the first ismore secure than the latter two, but that the latter two are possiblymore economical to implement than the first.

[0230] Universal Codes: 1) Libraries of Universal Codes

[0231] The use of libraries of universal codes simply means thatapplicant's techniques are employed as described, except for the factthat only a limited set of the individual embedded code signals aregenerated and that any given encoded material will make use of somesub-set of this limited “universal set.” An example is in order here. Aphotographic print paper manufacturer may wish to pre-expose every pieceof 8 by 10 inch print paper which they sell with a unique identificationcode. They also wish to sell identification code recognition software totheir large customers, service bureaus, stock agencies, and individualphotographers, so that all these people can not only verify that theirown material is correctly marked, but so that they can also determine ifthird party material which they are about to acquire has been identifiedby this technology as being copyrighted. This latter information willhelp them verify copyright holders and avoid litigation, among manyother benefits. In order to “economically” institute this plan, theyrealize that generating unique individual embedded codes for each andevery piece of print paper would generate Terabytes of independentinformation, which would need storing and to which recognition softwarewould need access. Instead, they decide to embed their print paper with16 bit identification codes derived from a set of only 50 independent“universal” embedded code signals. The details of how this is done arein the next paragraph, but the point is that now their recognitionsoftware only needs to contain a limited set of embedded codes in theirlibrary of codes, typically on the order of 1 Megabyte to 10 Megabytesof information for 50×16 individual embedded codes splayed out onto an8×10 photographic print (allowing for digital compression). The reasonfor picking 50 instead of just 16 is one of a little more addedsecurity, where if it were the same 16 embedded codes for allphotographic sheets, not only would the serial number capability belimited to 2 to the 16th power, but lesser and lesser sophisticatedpirates could crack the codes and remove them using software tools.

[0232] There are many different ways to implement this scheme, where thefollowing is but one exemplary method. It is determined by the wisdom ofcompany management that a 300 pixels per inch criteria for the embeddedcode signals is sufficient resolution for most applications. This meansthat a composite embedded code image will contain 3000 pixels by 2400pixels to be exposed at a very low level onto each 8×10 sheet. Thisgives 7.2 million pixels. Using our staggered coding system such asdescribed in the black box implementation of FIGS. 5 and 6, eachindividual embedded code signal will contain only 7.2 million divided by16, or approximately 450K true information carrying pixels, i.e. every16th pixel along a given raster line. These values will typically be inthe range of 2 to −2 in digital numbers, or adequately described by asigned 3 bit number. The raw information content of an embedded code isthen approximately ⅜th's bytes times 450K or about 170 Kilobytes.Digital compression can reduce this further. All of these decisions aresubject to standard engineering optimization principles as defined byany given application at hand, as is well known in the art. Thus we findthat 50 of these independent embedded codes will amount to a fewMegabytes. This is quite reasonable level to distribute as a “library”of universal codes within the recognition software. Advanced standardencryption devices could be employed to mask the exact nature of thesecodes if one were concerned that would-be pirates would buy therecognition software merely to reverse engineer the universal embeddedcodes. The recognition software could simply unencrypt the codes priorto applying the recognition techniques taught in this disclosure.

[0233] The recognition software itself would certainly have a variety offeatures, but the core task it would perform is determining if there issome universal copyright code within a given image. The key questionsbecome WHICH 16 of the total 50 universal codes it might contain, ifany, and if there are 16 found, what are their bit values. The keyvariables in determining the answers to these questions are:registration, rotation, magnification (scale), and extent. In the mostgeneral case with no helpful hints whatsoever, all variables must beindependently varied across all mutual combinations, and each of the 50universal codes must then be checked by adding and subtracting to see ifan entropy decrease occurs. Strictly speaking, this is an enormous job,but many helpful hints will be found which make the job much simpler,such as having an original image to compare to the suspected copy, orknowing the general orientation and extent of the image relative to an8×10 print paper, which then through simple registration techniques candetermine all of the variables to some acceptable degree. Then it merelyrequires cycling through the 50 universal codes to find any decrease inentropy. If one does, then 15 others should as well. A protocol needs tobe set up whereby a given order of the 50 translates into a sequence ofmost significant bit through least significant bit of the ID code word.Thus if we find that universal code number “4” is present, and we findits bit value to be “0”, and that universal codes “1” through “3,” aredefinitely not present, then our most significant bit of our N-bit IDcode number is a “0”. Likewise, we find that the next lowest universalcode present is number “7,” and it turns out to be a “1”, then our nextmost significant bit is a “1”. Done properly, this system can cleanlytrace back to the copyright owner so long as they registered theirphotographic paper stock serial number with some registry or with themanufacturer of the paper itself. That is, we look up in the registrythat a paper using universal embedded codes4,7,11,12,15,19,21,26,27,28,34,35,37,38,40, and 48, and having theembedded code 0110 0101 0111 0100 belongs to Leonardo de Boticelli, anunknown wildlife photographer and glacier cinematographer whose addressis in Northern Canada. We know this because he dutifully registered hisfilm and paper stock, a few minutes of work when he bought the stock,which he plopped into the “no postage necessary” envelope that themanufacturing company kindly provided to make the process ridiculouslysimple. Somebody owes Leonardo a royalty check it would appear, andcertainly the registry has automated this royalty payment process aspart of its services.

[0234] One final point is that truly sophisticated pirates and otherswith illicit intentions can indeed employ a variety of cryptographic andnot so cryptographic methods to crack these universal codes, sell them,and make software and hardware tools which can assist in the removing ordistorting of codes. We shall not teach these methods as part of thisdisclosure, however. In any event, this is one of the prices which mustbe paid for the ease of universal codes and the applications they openup.

[0235] Universal Codes: 2) Universal Codes Based on DeterministicFormulas

[0236] The libraries of universal codes require the storage andtransmittal of Megabytes of independent, generally random data as thekeys with which to unlock the existence and identity of signals andimagery that have been marked with universal codes. Alternatively,various deterministic formulas can be used which “generate” what appearto be random data/image frames, thereby obviating the need to store allof these codes in memory and interrogate each and of the “50” universalcodes. Deterministic formulas can also assist in speeding up the processof determining the ID code once one is known to exist in a given signalor image. On the other hand, deterministic formulas lend themselves tosleuthing by less sophisticated pirates. And once sleuthed, they lendthemselves to easier communication, such as posting on the Internet to ahundred newsgroups. There may well be many applications which do notcare about sleuthing and publishing, and deterministic formulas forgenerating the individual universal embedded codes might be just theticket.

[0237] Universal Codes: 3) “Simple” Universal Codes

[0238] This category is a bit of a hybrid of the first two, and is mostdirected at truly large scale implementations of the principles of thistechnology. The applications employing this class are of the type wherestaunch security is much less important than low cost, large scaleimplementation and the vastly larger economic benefits that thisenables. One exemplary application is placement of identificationrecognition units directly within modestly priced home audio and videoinstrumentation (such as a TV). Such recognition units would typicallymonitor audio and/or video looking for these copyright identificationcodes, and thence triggering simple decisions based on the findings,such as disabling or enabling recording capabilities, or incrementingprogram specific billing meters which are transmitted back to a centralaudio/video service provider and placed onto monthly invoices. Likewise,it can be foreseen that “black boxes” in bars and other public placescan monitor (listen with a microphone) for copyrighted materials andgenerate detailed reports, for use by ASCAP, BMI, and the like.

[0239] A core principle of simple universal codes is that some basicindustry standard “noiselike” and seamlessly repetitive patterns areinjected into signals, images, and image sequences so that inexpensiverecognition units can either A) determine the mere existence of acopyright “flag”, and B) additionally to A, determine preciseidentification information which can facilitate more complex decisionmaking and actions.

[0240] In order to implement this particular embodiment, the basicprinciples of generating the individual embedded noise signals need tobe simplified in order to accommodate inexpensive recognition signalprocessing circuitry, while maintaining the properties of effectiverandomness and holographic permeation. With large scale industryadoption of these simple codes, the codes themselves would border onpublic domain information (much as cable scrambling boxes are almost defacto public domain), leaving the door open for determined pirates todevelop black market countermeasures, but this situation would be quiteanalogous to the scrambling of cable video and the objective economicanalysis of such illegal activity.

[0241] One prior art known to the applicant in this general area ofpro-active copyright detection is the Serial Copy Management Systemadopted by many firms in the audio industry. To the best of applicant'sknowledge, this system employs a non-audio “flag” signal which is notpart of the audio data stream, but which is nevertheless grafted ontothe audio stream and can indicate whether the associated audio datashould or should not be duplicated. One problem with this system is thatit is restricted to media and instrumentation which can support thisextra “flag” signal. Another deficiency is that the flagging systemcarries no identity information which would be useful in making morecomplex decisions. Yet another difficulty is that high quality audiosampling of an analog signal can come arbitrarily close to making aperfect digital copy of some digital master and there seems to be noprovision for inhibiting this possibility.

[0242] Applicant's technology can be brought to bear on these and otherproblems, in audio applications, video, and all of the otherapplications previously discussed. An exemplary application of simpleuniversal codes is the following. A single industry standard “1.000000second of noise” would be defined as the most basic indicator of thepresence or absence of the copyright marking of any given audio signal.FIG. 9 has an example of what the waveform of an industry standard noisesecond might look like, both in the time domain 400 and the frequencydomain 402. It is by definition a continuous function and would adapt toany combination of sampling rates and bit quantizations. It has anormalized amplitude and can be scaled arbitrarily to any digital signalamplitude. The signal level and the first M'th derivatives of the signalare continuous at the two boundaries 404 (FIG. 9C), such that when it isrepeated, the “break” in the signal would not be visible (as a waveform)or audible when played through a high end audio system. The choice of 1second is arbitrary in this example, where the precise length of theinterval will be derived from considerations such as audibility,quasi-white noise status, seamless repeatability, simplicity ofrecognition processing, and speed with which a copyright markingdetermination can be made. The injection of this repeated noise signalonto a signal or image (again, at levels below human perception) wouldindicate the presence of copyright material. This is essentially a onebit identification code, and the embedding of further identificationinformation will be discussed later on in this section. The use of thisidentification technique can extend far beyond the low cost homeimplementations discussed here, where studios could use the technique,and monitoring stations could be set up which literally monitor hundredsof channels of information simultaneously, searching for marked datastreams, and furthermore searching for the associated identity codeswhich could be tied in with billing networks and royalty trackingsystems.

[0243] This basic, standardized noise signature is seamlessly repeatedover and over again and added to audio signals which are to be markedwith the base copyright identification. Part of the reason for the word“simple” is seen here: clearly pirates will know about this industrystandard signal, but their illicit uses derived from this knowledge,such as erasure or corruption, will be economically minuscule relativeto the economic value of the overall technique to the mass market. Formost high end audio this signal will be some 80 to 100 dB down from fullscale, or even much further; each situation can choose its own levelsthough certainly there will be recommendations. The amplitude of thesignal can be modulated according to the audio signal levels to whichthe noise signature is being applied, i.e. the amplitude can increasesignificantly when a drum beats, but not so dramatically as to becomeaudible or objectionable. These measures merely assist the recognitioncircuitry to be described.

[0244] Recognition of the presence of this noise signature by low costinstrumentation can be effected in a variety of ways. One rests on basicmodifications to the simple principles of audio signal power metering.Software recognition programs can also be written, and moresophisticated mathematical detection algorithms can be applied to audioin order to make higher confidence detection identifications. In suchembodiments, detection of the copyright noise signature involvescomparing the time averaged power level of an audio signal with the timeaveraged power level of that same audio signal which has had the noisesignature subtracted from it. If the audio signal with the noisesignature subtracted has a lower power level that the unchanged audiosignal, then the copyright signature is present and some status flag tothat effect needs to be set. The main engineering subtleties involved inmaking this comparison include: dealing with audio speed playbackdiscrepancies (e.g. an instrument might be 0.5% “slow” relative toexactly one second intervals); and, dealing with the unknown phase ofthe one second noise signature within any given audio (basically, its“phase” can be anywhere from 0 to 1 seconds). Another subtlety, not socentral as the above two but which nonetheless should be addressed, isthat the recognition circuits should not subtract a higher amplitude ofthe noise signature than was originally embedded onto the audio signal.Fortunately this can be accomplished by merely subtracting only a smallamplitude of the noise signal, and if the power level goes down, this isan indication of “heading toward a trough” in the power levels. Yetanother related subtlety is that the power level changes will be verysmall relative to the overall power levels, and calculations generallywill need to be done with appropriate bit precision, e.g. 32 bit valueoperations and accumulations on 16-20 bit audio in the calculations oftime averaged power levels.

[0245] Clearly, designing and packaging this power level comparisonprocessing circuitry for low cost applications is an engineeringoptimization task. One trade-off will be the accuracy of making anidentification relative to the “short-cuts” which can be made to thecircuitry in order to lower its cost and complexity. One embodiment forplacing this recognition circuitry inside of instrumentation is througha single programmable integrated circuit which is custom made for thetask. FIG. 10 shows one such integrated circuit 506. Here the audiosignal comes in, 500, either as a digital signal or as an analog signalto be digitized inside the IC 500, and the output is a flag 502 which isset to one level if the copyright noise signature is found, and toanother level if it is not found. Also depicted is the fact that thestandardized noise signature waveform is stored in Read Only Memory,504, inside the IC 506. There will be a slight time delay between theapplication of an audio signal to the IC 506 and the output of a validflag 502, due to the need to monitor some finite portion of the audiobefore a recognition can place. In this case, there may need to be a“flag valid” output 508 where the IC informs the external world if ithas had enough time to make a proper determination of the presence orabsence of the copyright noise signature.

[0246] There are a wide variety of specific designs and philosophies ofdesigns applied to accomplishing the basic function of the IC 506 ofFIG. 10. Audio engineers and digital signal processing engineers areable to generate several fundamentally different designs. One suchdesign is depicted in FIG. 11 by a process 599, which itself is subjectto further engineering optimization as will be discussed. FIG. 11depicts a flow chart for any of: an analog signal processing network, adigital signal processing network, or programming steps in a softwareprogram. We find an input signal 600 which along one path is applied toa time averaged power meter 602, and the resulting power output itselftreated as a signal P_(sig). To the upper right we find the standardnoise signature 504 which will be read out at 125% of normal speed, 604,thus changing its pitch, giving the “pitch changed noise signal” 606.Then the input signal has this pitch changed noise signal subtracted instep 608, and this new signal is applied to the same form of timeaveraged power meter as in 602, here labelled 610. The output of thisoperation is also a time based signal here labelled as P_(s-pcn), 610.Step 612 then subtracts the power signal 602 from the power signal 610,giving an output difference signal P_(out), 613. If the universalstandard noise signature does indeed exist on the input audio signal600, then case 2, 616, will be created wherein a beat signal 618 ofapproximately 4 second period will show up on the output signal 613, andit remains to detect this beat signal with a step such as in FIG. 12,622. Case 1, 614, is a steady noisy signal which exhibits no periodicbeating. 125% at step 604 is chosen arbitrarily here, where engineeringconsiderations would determine an optimal value, leading to differentbeat signal frequencies 618. Whereas waiting 4 seconds in this examplewould be quite a while, especially is you would want to detect at leasttwo or three beats, FIG. 12 outlines how the basic design of FIG. 11could be repeated and operated upon various delayed versions of theinput signal, delayed by something like {fraction (1/20)}th of a second,with 20 parallel circuits working in concert each on a segment of theaudio delayed by 0.05 seconds from their neighbors. In this way, a beatsignal will show up approximately every ⅕th of a second and will looklike a travelling wave down the columns of beat detection circuits. Theexistence or absence of this travelling beat wave triggers the detectionflag 502. Meanwhile, there would be an audio signal monitor 624 whichwould ensure that, for example, at least two seconds of audio has beenheard before setting the flag valid signal 508.

[0247] Though the audio example was described above, it should be clearto anyone in the art that the same type of definition of some repetitiveuniversal noise signal or image could be applied to the many othersignals, images, pictures, and physical media already discussed.

[0248] The above case deals only with a single bit plane of information,i.e., the noise signature signal is either there (1) or it isn't (0).For many applications, it would be nice to detect serial numberinformation as well, which could then be used for more complexdecisions, or for logging information on billing statements or whatnot.The same principles as the above would apply, but now there would be Nindependent noise signatures as depicted in FIG. 9 instead one singlesuch signature. Typically, one such signature would be the master uponwhich the mere existence of a copyright marking is detected, and thiswould have generally higher power than the others, and then the otherlower power “identification” noise signatures would be embedded intoaudio. Recognition circuits, once having found the existence of theprimary noise signature, would then step through the other N noisesignatures applying the same steps as described above. Where a beatsignal is detected, this indicates the bit value of ‘1’, and where nobeat signal is detected, this indicates a bit value of ‘0’. It might betypical that N will equal 32, that way 2³² number of identificationcodes are available to any given industry employing this technology.

[0249] Use of this Technology When the Length of the Identification Codeis 1

[0250] The principles described herein can obviously be applied in thecase where only a single presence or absence of an identificationsignal—a fingerprint if you will—is used to provide confidence that somesignal or image is copyrighted. The example above of the industrystandard noise signature is one case in point. We no longer have theadded confidence of the coin flip analogy, we no longer have trackingcode capabilities or basic serial number capabilities, but manyapplications may not require these attributes and the added simplicityof a single fingerprint might outweigh these other attributes in anyevent.

[0251] The “Wallpaper” Analogy

[0252] The term “holographic” has been used in this disclosure todescribe how an identification code number is distributed in a largelyintegral form throughout an encoded signal or image. This also refers tothe idea that any given fragment of the signal or image contains theentire unique identification code number. As with physicalimplementations of holography, there are limitations on how small afragment can become before one begins to lose this property, where theresolution limits of the holographic media are the main factor in thisregard for holography itself. In the case of an uncorrupted distributionsignal which has used the encoding device of FIG. 5, and whichfurthermore has used our “designed noise” of above wherein the zero'swere randomly changed to a 1 or −1, then the extent of the fragmentrequired is merely N contiguous samples in a signal or image rasterline, where N is as defined previously being the length of ouridentification code number. This is an informational extreme; practicalsituations where noise and corruption are operative will requiregenerally one, two or higher orders of magnitude more samples than thissimple number N. Those skilled in the art will recognize that there aremany variables involved in pinning down precise statistics on the sizeof the smallest fragment with which an identification can be made.

[0253] For tutorial purposes, the applicant also uses the analogy thatthe unique identification code number is “wallpapered” across and image(or signal). That is, it is repeated over and over again all throughoutan image. This repetition of the ID code number can be regular, as inthe use of the encoder of FIG. 5, or random itself, where the bits inthe ID code 216 of FIG. 6 are not stepped through in a normal repetitivefashion but rather are randomly selected on each sample, and the randomselection stored along with the value of the output 228 itself. in anyevent, the information carrier of the ID code, the individual embeddedcode signal, does change across the image or signal. Thus as thewallpaper analogy summarizes: the ID code repeats itself over and over,but the patterns that each repetition imprints change randomlyaccordingly to a generally unsleuthable key.

[0254] Lossy Data Compression

[0255] As earlier mentioned, applicant's preferred forms ofidentification coding withstand lossy data compression, and subsequentdecompression. Such compression is finding increasing use, particularlyin contexts such as the mass distribution of digitized entertainmentprogramming (movies, etc.).

[0256] While data encoded according to the disclosed techniques canwithstand all types of lossy compression known to applicant, thoseexpected to be most commercially important are the CCITT G3, CCITT G4,JPEG, MPEG and JBIG compression/decompression standards. The CCITTstandards are widely used in black-and-white document compression (e.g.facsimile and document-storage). JPEG is most widely used with stillimages. MPEG is most widely used with moving images. JBIG is a likelysuccessor to the CCITT standards for use with black-and-white imagery.Such techniques are well known to those in the lossy data compressionfield; a good overview can be found in Pennebaker et al, JPEG, StillImage Data Compression Standard, Van Nostrand Reinhold, N.Y., 1993.

[0257] Towards Steganography Proper and the Use of this Technology inPassing More Complex Messages or Information

[0258] This disclosure concentrates on what above was calledwallpapering a single identification code across an entire signal. Thisappears to be a desirable feature for many applications. However, thereare other applications where it might be desirable to pass messages orto embed very long strings of pertinent identification information insignals and images. One of many such possible applications would bewhere a given signal or image is meant to be manipulated by severaldifferent groups, and that certain regions of an image are reserved foreach group's identification and insertion of pertinent manipulationinformation.

[0259] In these cases, the code word 216 in FIG. 6 can actually changein some pre-defined manner as a function of signal or image position.For example, in an image, the code could change for each and everyraster line of the digital image. It might be a 16 bit code word, 216,but each scan line would have a new code word, and thus a 480 scan lineimage could pass a 980 (480×2 bytes) byte message. A receiver of themessage would need to have access to either the noise signal stored inmemory 214, or would have to know the universal code structure of thenoise codes if that method of coding was being used. To the best ofapplicant's knowledge, this is a novel approach to the mature field ofsteganography.

[0260] In all three of the foregoing applications of universal codes, itwill often be desirable to append a short (perhaps 8- or 16-bit) privatecode, which users would keep in their own secured places, in addition tothe universal code. This affords the user a further modicum of securityagainst potential erasure of the universal codes by sophisticatedpirates.

[0261] Applicant's Prior Application

[0262] The Detailed Description to this point has simply repeated thedisclosure of applicant's prior international application, laid open asPCT publication WO 95/14289. It was reproduced above simply to providecontext for the disclosure which follows.

[0263] One Master Code Signal As A Distinction From N IndependentEmbedded Code Signals

[0264] In certain sections of this disclosure, perhaps exemplified inthe section on the realtime encoder, an economizing step was takenwhereby the N independent and source-signal-coextensive embedded codesignals were so designed that the non-zero elements of any givenembedded code signal were unique to just that embedded code signal andno others. Said more carefully, certain pixels/sample points of a givensignal were “assigned” to some pre-determined m'th bit location in ourN-bit identification word. Furthermore, and as another basicoptimization of implementation, the aggregate of these assignedpixels/samples across all N embedded code signals is precisely theextent of the source signal, meaning each and every pixel/samplelocation in a source signal is assigned one and only one m'th bit placein our N-bit identification word. (This is not to say, however, thateach and every pixel MUST be modified). As a matter of simplification wecan then talk about a single master code signal (or “Snowy Image”)rather than N independent signals, realizing that pre-defined locationsin this master signal correspond to unique bit locations in our N-bitidentification word. We therefore construct, via this circuitous route,this rather simple concept on the single master noise signal. Beyondmere economization and simplification, there are also performancereasons for this shift, primarily derived from the idea that individualbit places in our N-bit identification word are no longer “competing”for the information carrying capacity of a single pixel/sample.

[0265] With this single master more clearly understood, we can gain newinsights into other sections of this disclosure and explore furtherdetails within the given application areas.

[0266] More of Deterministic Universal Codes Using the Master CodeConcept

[0267] One case in point is to further explore the use of DeterministicUniversal Codes, labelled as item “2” in the sections devoted touniversal codes. A given user of this technology may opt for thefollowing variant use of the principles of this technology. The user inquestion might be a mass distributor of home videos, but clearly theprinciples would extend to all other potential users of this technology.FIG. 13 pictorially represents the steps involved. In the example theuser is one “Alien Productions.” They first create an image canvas whichis coextensive to the size of the video frames of their movie “Bud'sAdventures.” On this canvas they print the name of the movie, they placetheir logo and company name. Furthermore, they have specific informationat the bottom, such as the distribution lot for the mass copying thatthey are currently cranking out, and as indicated, they actually have aunique frame number indicated. Thus we find the example of a standardimage 700 which forms the initial basis for the creation of a masterSnowy Image (master code signal) which will be added into the originalmovie frame, creating an output distributable frame. This image 700 canbe either black & white or color. The process of turning this image 700into a pseudo random master code signal is alluded to by theencryption/scrambling routine 702, wherein the original image 700 ispassed through any of dozens of well known scrambling methods. Thedepiction of the number “28” alludes to the idea that there can actuallybe a library of scrambling methods, and the particular method used forthis particular movie, or even for this particular frame, can change.The result is our classic master code signal or Snowy Image. In general,its brightness values are large and it would look very much like thesnowy image on a television set tuned to a blank channel, but clearly ithas been derived from an informative image 700, transformed through ascrambling 702. (Note: the splotchiness of the example picture isactually a rather poor depiction; it was a function of the crude toolsavailable to the inventor).

[0268] This Master Snowy Image 704 is then the signal which is modulatedby our N-bit identification word as outlined in other sections of thedisclosure, the resulting modulated signal is then scaled down inbrightness to the acceptable perceived noise level, and then added tothe original frame to produce the distributable frame.

[0269] There are a variety of advantages and features that the methoddepicted in FIG. 13 affords. There are also variations of theme withinthis overall variation. Clearly, one advantage is that users can now usemore intuitive and personalized methods for stamping and signing theirwork. Provided that the encryption/scrambling routines, 702, are indeedof a high security and not published or leaked, then even if a would-bepirate has knowledge of the logo image 700, they should not be able touse this knowledge to be able to sleuth the Master Snowy Image 704, andthus they should not be able to crack the system, as it were. On theother hand, simple encryption routines 702 may open the door forcracking the system. Another clear advantage of the method of FIG. 13 isthe ability to place further information into the overall protectiveprocess. Strictly speaking, the information contained in the logo image700 is not directly carried in the final distributable frame. Saidanother way, and provided that the encryption/scrambling routine 702 hasa straightforward and known decryption/descrambling method whichtolerates bit truncation errors, it is generally impossible to fullyre-create the image 700 based upon having the distributable frame, theN-bit identification code word, the brightness scaling factor used, andthe number of the decryption routine to be used. The reason that anexact recreation of the image 700 is impossible is due to the scalingoperation itself and the concomitant bit truncation. For the presentdiscussion, this whole issue is somewhat academic, however.

[0270] A variation on the theme of FIG. 13 is to actually place theN-bit identification code word directly into the logo image 700. In somesense this would be self-referential. Thus when we pull out our storedlogo image 700 it already contains visually what our identification wordis, then we apply encryption routine #28 to this image, scale it down,then use this version to decode a suspect image using the techniques ofthis disclosure. The N bit word thus found should match the onecontained in our logo image 700.

[0271] One desirable feature of the encryption/scrambling routine 702might be (but is certainly not required to be) that even given a smallchange in the input image 700, such as a single digit change of theframe number, there would be a huge visual change in the outputscrambled master snowy image 704. Likewise, the actual scramblingroutine may change as a function of frame numbers, or certain “seed”numbers typically used within pseudo-randomizing functions could changeas a function of frame number. All manner of variations are thuspossible, all helping to maintain high levels of security. Eventually,engineering optimization considerations will begin to investigate therelationship between some of these randomizing methods, and how they allrelate to maintaining acceptable signal strength levels through theprocess of transforming an uncompressed video stream into a compressedvideo stream such as with the MPEG compression methodologies.

[0272] Another desired feature of the encryption process 702 is that itshould be informationally efficient, i.e., that given any random input,it should be able to output an essentially spatially uniform noisy imagewith little to no residual spatial patterns beyond pure randomness. Anyresidual correlated patterns will contribute to inefficiency of encodingthe N-bit identification word, as well as opening up further tools towould-be pirates to break the system.

[0273] Another feature of the method of FIG. 13 is that there is moreintuitional appeal to using recognizable symbols as part of a decodingsystem, which should then translate favorably in the essentially layenvironment of a courtroom. It strengthens the simplicity of the coinflip vernacular mentioned elsewhere. Jury members or judges will betterrelate to an owner's logo as being a piece of the key of recognizing asuspect copy as being a knock-off.

[0274] It should also be mentioned that, strictly speaking, the logoimage 700 does not need to be randomized. The steps could equally applystraight to the logo image 700 directly. It is not entirely clear to theinventor what practical goal this might have. A trivial extension ofthis concept to the case where N=1 is where, simply and easily, the logoimage 700 is merely added to an original image at a very low brightnesslevel. The inventor does not presume this trivial case to be at all anovelty. In many ways this is similar to the age old issue of subliminaladvertising, where the low light level patterns added to an image arerecognizable to the human eye/brain system and—supposedly—operating onthe human brain at an unconscious level. By pointing out these trivialextensions of the current technology, hopefully there can arise furtherclarity which distinguishes applicant's novel principles in relation tosuch well known prior art techniques.

[0275] 5-bit Abridged Alphanumeric Code Sets and Others

[0276] It is desirable in some applications for the N-bit identificationword to actually signify names, companies, strange words, messages, andthe like. Most of this disclosure focuses on using the N-bitidentification word merely for high statistical security, indexedtracking codes, and other index based message carrying. The informationcarrying capacity of “invisible signatures” inside imagery and audio issomewhat limited, however, and thus it would be wise to use our N bitsefficiently if we actually want to “spell out” alphanumeric items in theN-bit identification word.

[0277] One way to do this is to define, or to use an already existing,reduced bit (e.g. less than 8-bit ASCII) standardized codes for passingalphanumeric messages. This can help to satisfy this need on the part ofsome applications. For example, a simple alphanumeric code could bebuilt on a 5-bit index table, where for example the letters V,X,Q, and Zare not included, but the digits 0 through 9 are included. In this way,a 100 bit identification word could carry with it 20 alphanumericsymbols. Another alternative is to use variable bit length codes such asthe ones used in text compression routines (e.g. Huffman) whereby morefrequently used symbols have shorter bit length codes and lessfrequently used symbols have longer bit lengths.

[0278] More on Detecting and Recognizing the N-bit Identification Wordin Suspect Signals

[0279] Classically speaking, the detection of the N-bit identificationword fits nicely into the old art of detecting known signals in noise.Noise in this last statement can be interpreted very broadly, even tothe point where an image or audio track itself can be considered noise,relative to the need to detect the underlying signature signals. One ofmany references to this older art is the book Kassam, Saleem A., “SignalDetection in Non-Gaussian Noise,” Springer-Verlag, 1988 (generallyavailable at well stocked libraries, e.g. available at the U.S. Libraryof Congress by catalog number TK5102.5 .K357 1988.). To the best of thisinventor's current understanding, none of the material in this book isdirectly applicable to the issue of discovering the polarity ofapplicant's embedded signals, but the broader principles are indeedapplicable.

[0280] In particular, section 1.2 “Basic Concepts of Hypothesis Testing”of Kassam's book lays out the basic concept of a binary hypothesis,assigning the value “1” to one hypothesis and the value “0” to the otherhypothesis. The last paragraph of that section is also on pointregarding the earlier-described embodiment, i.e., that the “0”hypothesis corresponds to “noise only” case, whereas the “1” correspondsto the presence of a signal in the observations. Applicant's use of truepolarity is not like this, however, where now the “0” corresponds to thepresence of an inverted signal rather than to “noise-only.” Also in thepresent embodiment, the case of “noise-only” is effectively ignored, andthat an identification process will either come up with our N-bitidentification word or it will come up with “garbage.”

[0281] The continued and inevitable engineering improvement in thedetection of embedded code signals will undoubtedly borrow heavily fromthis generic field of known signal detection. A common and well-knowntechnique in this field is the so-called “matched filter,” which isincidentally discussed early in section 2 of the Kassam book. Many basictexts on signal processing include discussions on this method of signaldetection. This is also known in some fields as correlation detection.Furthermore, when the phase or location of a known signal is known apriori, such as is often the case in applications of this technology,then the matched filter can often be reduced to a simple vector dotproduct between a suspect image and the embedded signal associated withan m'th bit plane in our N-bit identification word. This then representsyet another simple “detection algorithm” for taking a suspect image andproducing a sequence of 1s and 0s with the intention of determining ifthat series corresponds to a pre-embedded N-bit identification word. Inwords, and with reference to FIG. 3, we run through the process steps upthrough and including the subtracting of the original image from thesuspect, but the next step is merely to step through all N randomindependent signals and perform a simple vector dot product betweenthese signals and the difference signal, and if that dot product isnegative, assign a ‘0’ and if that dot product is positive, assign a‘1.’ Careful analysis of this “one of many” algorithms will show itssimilarity to the traditional matched filter.

[0282] There are also some immediate improvements to the “matchedfilter” and “correlation-type” that can provide enhanced ability toproperly detect very low level embedded code signals. Some of theseimprovements are derived from principles set forth in the Kassam book,others are generated by the inventor and the inventor has no knowledgeof their being developed in other papers or works, but neither has theinventor done fully extensive searching for advanced signal detectiontechniques. One such technique is perhaps best exemplified by FIG. 3.5in Kassam on page 79, wherein there are certain plots of the variouslocally optimum weighting coefficients which can apply to a generaldot-product algorithmic approach to detection. In other words, ratherthan performing a simple dot product, each elemental multiplicationoperation in an overall dot product can be weighted based upon known apriori statistical information about the difference signal itself, i.e.,the signal within which the low level known signals are being sought.The interested reader who is not already familiar with these topics isencouraged to read chapter 3 of Kassam to gain a fuller understanding.

[0283] One principle which did not seem to be explicitly present in theKassam book and which was developed rudimentarily by the inventorinvolves the exploitation of the magnitudes of the statisticalproperties of the known signal being sought relative to the magnitude ofthe statistical properties of the suspect signal as a whole. Inparticular, the problematic case seems to be where the embedded signalswe are looking for are of much lower level than the noise and corruptionpresent on a difference signal. FIG. 14 attempts to set the stage forthe reasoning behind this approach. The top FIG. 720 contains a genericlook at the differences in the histograms between a typical“problematic” difference signal, i.e., a difference signal which has amuch higher overall energy than the embedded signals that may or may notbe within it. The term “mean-removed” simply means that the means ofboth the difference signal and the embedded code signal have beenremoved, a common operation prior to performing a normalized dotproduct. The lower figure 722 then has a generally similar histogramplot of the derivatives of the two signals, or in the case of an image,the scalar gradients. From pure inspection it can be seen that a simplethresholding operation in the derivative transform domain, with asubsequent conversion back into the signal domain, will go a long waytoward removing certain innate biases on the dot product “recognitionalgorithm” of a few paragraphs back. Thresholding here refers to theidea that if the absolute value of a difference signal derivative valueexceeds some threshold, then it is replaced simply by that thresholdvalue. The threshold value can be so chosen to contain most of thehistogram of the embedded signal.

[0284] Another operation which can be of minor assistance in“alleviating” some of the bias effects in the dot product algorithm isthe removal of the low order frequencies in the difference signal, i.e.,running the difference signal through a high pass filter, where thecutoff frequency for the high pass filter is relatively near the origin(or DC) frequency.

[0285] Special Considerations for Recognizing Embedded Codes on SignalsWhich Have Been Compressed and Decompressed, or Alternatively, forRecognizing Embedded Codes Within Any Signal Which Has Undergone SomeKnown Process Which Creates Non-Uniform Error Sources

[0286] Long title for a basic concept. Some signal processingoperations, such as compressing and decompressing an image, as with theJPEG/MPEG formats of image/video compression, create errors in somegiven transform domain which have certain correlations and structure.Using JPEG as an example, if a given image is compressed thendecompressed at some high compression ratio, and that resulting image isthen fourier transformed and compared to the fourier transform of theoriginal uncompressed image, a definite pattern is clearly visible. Thispatterning is indicative of correlated error, i.e. error which can be tosome extent quantified and predicted. The prediction of the grosserproperties of this correlated error can then be used to advantage in theheretofore-discussed methods of recognizing the embedded code signalswithin some suspect image which may have undergone either JPEGcompression or any other operation which leaves these telltalecorrelated error signatures. The basic idea is that in areas where thereare known higher levels of error, the value of the recognition methodsis diminished relative to the areas with known lower levels ofcorrelated errors. It is often possible to quantify the expected levelsof error and use this quantification to appropriately weight theretransformed signal values. Using JPEG compression again as an example,a suspect signal can be fourier transformed, and the fourier spacerepresentation may clearly show the telltale box grid pattern. Thefourier space signal can then be “spatially filtered” near the gridpoints, and this filtered representation can then be transformed backinto its regular time or space domain to then be run through therecognition methods presented in this disclosure. Likewise, any signalprocessing method which creates non-uniform error sources can betransformed into the domain in which these error sources arenon-uniform, the values at the high points of the error sources can beattenuated, and the thusly “filtered” signal can be transformed backinto the time/space domain for standard recognition. Often this wholeprocess will include the lengthy and arduous step of “characterizing”the typical correlated error behavior in order to “design” theappropriate filtering profiles.

“SIGNATURE CODES” and “INVISIBLE SIGNATURES”

[0287] Briefly and for the sake of clarity, the phrases and terms“signatures,” “invisible signatures,” and “signature codes” have beenand will continue to be used to refer to the general techniques of thistechnology and often refer specifically to the composite embedded codesignal as defined early on in this disclosure.

MORE DETAILS ON EMBEDDING SIGNATURE CODES INTO MOTION PICTURES

[0288] Just as there is a distinction made between the JPEG standardsfor compressing still images and the MPEG standards for compressedmotion images, so too should there be distinctions made between placinginvisible signatures into still images and placing signatures intomotion images. As with the JPEG/MPEG distinction, it is not a matter ofdifferent foundations, it is the fact that with motion images a newdimension of engineering optimization opens up by the inclusion of timeas a parameter. Any textbook dealing with MPEG will surely contain asection on how MPEG is (generally) not merely applying JPEG on a frameby frame basis. It will be the same with the application of theprinciples of this technology: generally speaking, the placement ofinvisible signatures into motion image sequences will not be simplyindependently placing invisible signatures into one frame after thenext. A variety of time-based considerations come into play, somedealing with the psychophysics of motion image perception, others drivenby simple cost engineering considerations.

[0289] One embodiment actually uses the MPEG compression standard as apiece of a solution. Other motion image compression schemes couldequally well be used, be they already invented or yet to be invented.This example also utilizes the scrambled logo image approach togenerating the master snowy image as depicted in FIG. 13 and discussedin the disclosure.

[0290] A “compressed master snowy image” is independently rendered asdepicted in FIG. 15. “Rendered” refers to the generally well knowntechnique in video, movie and animation production whereby an image orsequence of images is created by constructive techniques such ascomputer instructions or the drawing of animation cells by hand. Thus,“to render” a signature movie in this example is essentially to leteither a computer create it as a digital file or to design some customdigital electronic circuitry to create it.

[0291] The overall goal of the procedure outlined in FIG. 15 is to applythe invisible signatures to the original movie 762 in such a way thatthe signatures do not degrade the commercial value of the movie,memorialized by the side-by-side viewing, 768, AND in such a way thatthe signature optimally survives through the MPEG compression anddecompression process. As noted earlier, the use of the MPEG process inparticular is an example of the generic process of compression. Also itshould be noted that the example presented here has definite room forengineering variations. In particular, those practiced in the art ofmotion picture compression will appreciate the fact if we start out withtwo video streams A and B, and we compress A and B separately andcombine their results, then the resultant video stream C will notgenerally be the same as if we pre-added the video streams A and B andcompressed this resultant. Thus we have in general, e.g.:

MPEG(A)+MPEG(B)=\=MPEG(A+B)

[0292] where =\= is not equal to. This is somewhat an abstract notion tointroduce at this point in the disclosure and will become more clear asFIG. 15 is discussed. The general idea, however, is that there will be avariety of algebras that can be used to optimize the pass-through of“invisible” signatures through compression procedures. Clearly, the sameprinciples as depicted in FIG. 15 also work on still images and the JPEGor any other still image compression standard.

[0293] Turning now to the details of FIG. 15, we begin with the simplestepping through of all Z frames of a movie or video. For a two hourmovie played at 30 frames per second, Z turns out to be (30*2*60*60) or216,000. The inner loop of 700, 702 and 704 merely mimics FIG. 13'ssteps. The logo frame optionally can change during the stepping throughframes. The two arrows emanating from the box 704 represent both thecontinuation of the loop 750 and the depositing of output frames intothe rendered master Snowy Image 752.

[0294] To take a brief but potentially appropriate digression at thispoint, the use of the concept of a Markov process brings certain clarityto the discussion of optimizing the engineering implementation of themethods of FIG. 15. Briefly, a Markov process is one in which a sequenceof events takes place and in general there is no memory between one stepin the sequence and the next. In the context of FIG. 15 and a sequenceof images, a Markovian sequence of images would be one in which there isno apparent or appreciable correlation between a given frame and thenext. Imagine taking the set of all movies ever produced, stepping oneframe at a time and selecting a random frame from a random movie to beinserted into an output movie, and then stepping through, say, oneminute or 1800 of these frames. The resulting “movie” would be a fineexample of a Markovian movie. One point of this discussion is thatdepending on how the logo frames are rendered and depending on how theencryption/scrambling step 702 is performed, the Master Snowy Movie 752will exhibit some generally quantifiable degree of Markoviancharacteristics. The point of this point is that the compressionprocedure itself will be affected by this degree of Markovian nature andthus needs to be accounted for in designing the process of FIG. 15.Likewise, and only in general, even if a fully Markovian movie iscreated in the High Brightness Master Snowy Movie, 752, then theprocessing of compressing and decompressing that movie 752, representedas the MPEG box 754, will break down some of the Markovian nature of 752and create at least a marginally non-Markovian compressed master SnowyMovie 756. This point will be utilized when the disclosure brieflydiscusses the idea of using multiple frames of a video stream in orderto find a single N-bit identification word, that is, the same N-bitidentification word may be embedded into several frames of a movie, andit is quite reasonable to use the information derived from thosemultiple frames to find that single N-bit identification word. Thenon-Markovian nature of 756 thus adds certain tools to reading andrecognizing the invisible signatures. Enough of this tangent.

[0295] With the intent of pre-conditioning the ultimately utilizedMaster Snowy Movie 756, we now send the rendered High Brightness MasterSnowy Movie 752 through both the MPEG compression AND decompressionprocedure 754. With the caveat previously discussed where it isacknowledged that the MPEG compression process is generally notdistributive, the idea of the step 754 is to crudely segregate theinitially rendered Snowy Movie 752 into two components, the componentwhich survives the compression process 754 which is 756, and thecomponent which does not survive, also crudely estimated using thedifference operation 758 to produce the “Cheap Master Snowy Movie” 760.The reason use is made of the deliberately loose term “Cheap” is that wecan later add this signature signal as well to a distributable movie,knowing that it probably won't survive common compression processes butthat nevertheless it can provide “cheap” extra signature signal energyfor applications or situations which will never experience compression.[Thus it is at least noted in FIG. 15]. Back to FIG. 15 proper, we nowhave a rough cut at signatures which we know have a higher likelihood ofsurviving intact through the compression process, and we use this“Compressed Master Snowy Movie” 756 to then go through this procedure ofbeing scaled down 764, added to the original movie 766, producing acandidate distributable movie 770, then compared to the original movie(768) to ensure that it meets whatever commercially viable criteriawhich have been set up (i.e. the acceptable perceived noise level). Thearrow from the side-by-side step 768 back to the scale down step 764corresponds quite directly to the “experiment visually . . . ” step ofFIG. 2, and the gain control 226 of FIG. 6. Those practiced in the artof image and audio information theory can recognize that the whole ofFIG. 15 can be summarized as attempting to pre-condition the invisiblesignature signals in such a way that they are better able to withstandeven quite appreciable compression. To reiterate a previously mentioneditem as well, this idea equally applies to ANY such pre-identifiableprocess to which an image, and image sequence, or audio track might besubjected. This clearly includes the JPEG process on still images.

[0296] Additional Elements of the Realtime Encoder Circuitry

[0297] It should be noted that the method steps represented in FIG. 15,generally following from box 750 up through the creation of thecompressed master snowy movie 756, could with certain modification beimplemented in hardware. In particular, the overall analog noise source206 in FIG. 6 could be replaced by such a hardware circuit. Likewise thesteps and associated procedures depicted in FIG. 13 could be implementedin hardware and replace the analog noise source 206.

[0298] Recognition Based on More Than One Frame: Non-MarkovianSignatures

[0299] As noted in the digression on Markov and non-Markov sequences ofimages, it is pointed out once again that in such circumstances wherethe embedded invisible signature signals are non-Markovian in nature,i.e., that there is some correlation between the master snowy image ofone frame to that of the next, AND furthermore that a single N-bitidentification word is used across a range of frames and that thesequence of N-bit identification words associated with the sequence offrames is not Markovian in nature, then it is possible to utilize thedata from several frames of a movie or video in order to recognize asingle N-bit identification word. All of this is a fancy way of sayingthat the process of recognizing the invisible signatures should use asmuch information as is available, in this case translating to multipleframes of a motion image sequence.

HEADER VERIFICATION

[0300] The concept of the “header” on a digital image or audio file is awell established practice in the art. The top of FIG. 16 has asimplified look at the concept of the header, wherein a data file beginswith generally a comprehensive set of information about the file as awhole, often including information about who the author or copyrightholder of the data is, if there is a copyright holder at all. Thisheader 800 is then typically followed by the data itself 802, such as anaudio stream, a digital image, a video stream, or compressed versions ofany of these items. This is all exceedingly known and common in theindustry.

[0301] One way in which the principles of this technology can beemployed in the service of information integrity is generically depictedin the lower diagram of FIG. 16. In general, the N-bit identificationword can be used to essentially “wallpaper” a given simple messagethroughout an image (as depicted) or audio data stream, therebyreinforcing some message already contained in a traditional header. Thisis referred to as “header verification” in the title of this section.The thinking here is that less sophisticated would-be pirates andabusers can alter the information content of header information, and themore secure techniques of this technology can thus be used as checks onthe veracity of header information. Provided that the code message, suchas “joe's image” in the header, matches the repeated message throughoutan image, then a user obtaining the image can have some higher degree ofconfidence that no alteration of the header has taken place.

[0302] Likewise, the header can actually carry the N-bit identificationword so that the fact that a given data set has been coded via themethods of this technology can be highlighted and the verification codebuilt right into the header. Naturally, this data file format has notbeen created yet since the principles of this technology are currentlynot being employed.

THE “BODIER”: THE ABILITY TO LARGELY REPLACE A HEADER

[0303] Although all of the possible applications of the following aspectof applicant's technology are not fully developed, it is neverthelesspresented as a design alternative that may be important some day. Thetitle of this section contains the silly phrase used to describe thispossibility: the “bodier.”

[0304] Whereas the previous section outlined how the N-bitidentification word could “verify” information contained within theheader of a digital file, there is also the prospect that these methodscould completely replace the very concept of the header and place theinformation which is traditionally stored in the header directly intothe digital signal and empirical data itself.

[0305] This could be as simple as standardizing on, purely for example,a 96-bit (12 bytes) leader string on an otherwise entirely empiricaldata stream. This leader string would plain and simple contain thenumeric length, in elemental data units, of the entire data file notincluding the leader string, and the number of bits of depth of a singledata element (e.g. its number of grey levels or the number of discretesignal levels of an audio signal). From there, universal codes asdescribed in this specification would be used to read the N-bitidentification word written directly within the empirical data. Thelength of the empirical data would need to be long enough to contain thefull N bits. The N-bit word would effectively transmit what wouldotherwise be contained in a traditional header.

[0306]FIG. 17 depicts such a data format and calls it the “universalempirical data format.” The leader string 820 is comprised of the 64 bitstring length 822 and the 32 bit data word size 824. The data stream 826then immediately follows, and the information traditionally contained inthe header but now contained directly in the data stream is representedas the attached dotted line 828. Another term used for this attachedinformation is a “shadow channel” as also depicted in FIG. 17.

[0307] Yet another element that may need to be included in the leaderstring is some sort of complex check sum bits which can verify that thewhole of the data file is intact and unaltered. This is not included inFIG. 17.

MORE ON DISTRIBUTED UNIVERSAL CODE SYSTEMS: DYNAMIC CODES

[0308] One intriguing variation on the theme of universal codes is thepossibility of the N-bit identification word actually containinginstructions which vary the operations of the universal code systemitself. One of many examples is immediately in order: a datatransmission is begun wherein a given block of audio data is fullytransmitted, an N-bit identification word is read knowing that the firstblock of data used universal codes #145 out of a set of 500, say, andthat part of the N-bit identification word thus found is theinstructions that the next block of data should be “analyzed” using theuniversal code set #411 rather than #145. In general, this technologycan thus be used as a method for changing on the fly the actual decodinginstructions themselves. Also in general, this ability to utilize“dynamic codes” should greatly increase the sophistication level of thedata verification procedures and increase the economic viability ofsystems which are prone to less sophisticated thwarting by hackers andwould-be pirates. The inventor does not believe that the concept ofdynamically changing decoding/decrypting instructions is novel per se,but the carrying of those instructions on the “shadow channel” ofempirical data does appear to be novel to the best of the inventor'sunderstanding. [Shadow channel was previously defined as yet anothervernacular phrase encapsulating the more steganographic proper elementsof this technology].

[0309] A variant on the theme of dynamic codes is the use of universalcodes on systems which have a priori assigned knowledge of which codesto use when. One way to summarize this possibility is the idea of “thedaily password.” The password in this example represents knowledge ofwhich set of universal codes is currently operative, and these changedepending on some set of application-specific circumstances. Presumablymany applications would be continually updating the universal codes toones which had never before been used, which is often the case with thetraditional concept of the daily password. Part of a currentlytransmitted N-bit identification word could be the passing on of thenext day's password, for example. Though time might be the most commontrigger events for the changing of passwords, there could be event basedtriggers as well.

SYMMETRIC PATTERNS AND NOISE PATTERNS: TOWARD A ROBUST UNIVERSAL CODINGSYSTEM

[0310] The placement of identification patterns into images is certainlynot new. Logos stamped into corners of images, subtle patterns such astrue signatures or the wallpapering of the copyright circle-C symbol,and the watermark proper are all examples of placing patterns intoimages in order to signify ownership or to try to prevent illicit usesof the creative material.

[0311] What does appear to be novel is the approach of placingindependent “carrier” patterns, which themselves are capable of beingmodulated with certain information, directly into images and audio forthe purposes of transmission and discernment of said information, whileeffectively being imperceptible and/or unintelligible to a perceivinghuman. Steganographic solutions currently known to the inventor allplace this information “directly” into empirical data (possibly firstencrypted, then directly), whereas the methods of this disclosure positthe creation of these (most-often) coextensive carrier signals, themodulation of those carrier signals with the information proper, THENthe direct application to the empirical data.

[0312] In extending these concepts one step further into the applicationarena of universal code systems, where a sending site transmitsempirical data with a certain universal coding scheme employed and areceiving site analyzes said empirical data using the universal codingscheme, it would be advantageous to take a closer look at theengineering considerations of such a system designed for thetransmission of images or motion images, as opposed to audio. Said moreclearly, the same type of analysis of a specific implementation such asis contained in FIG. 9 and its accompanying discussion on the universalcodes in audio applications should as well be done on imagery (or twodimensional signals). This section is such an analysis and outline of aspecific implementation of universal codes and it attempts to anticipatevarious hurdles that such a method should clear.

[0313] The unifying theme of one implementation of a universal codingsystem for imagery and motion imagery is “symmetry.” The idea drivingthis couldn't be more simple: a prophylactic against the use of imagerotation as a means for less sophisticated pirates to bypass any givenuniversal coding system. The guiding principle is that the universalcoding system should easily be read no matter what rotationalorientation the subject imagery is in. These issues are quite common inthe fields of optical character recognition and object recognition, andthese fields should be consulted for further tools and tricks infurthering the engineering implementation of this technology. As usual,an immediate example is in order.

[0314] Digital Video And Internet Company XYZ has developed a deliverysystem of its product which relies on a non-symmetric universal codingwhich double checks incoming video to see if the individual frames ofvideo itself, the visual data, contain XYZ's own relatively highsecurity internal signature codes using the methods of this technology.This works well and fine for many delivery situations, including theirInternet tollgate which does not pass any material unless both theheader information is verified AND the in-frame universal codes arefound. However, another piece of their commercial network performsmundane routine monitoring on Internet channels to look for unauthorizedtransmission of their proprietary creative property. They control theencryption procedures used, thus it is no problem for them to unencryptcreative property, including headers, and perform straightforwardchecks. A pirate group that wants to traffic material on XYZ's networkhas determined how to modify the security features in XYZ's headerinformation system, and they have furthermore discovered that by simplyrotating imagery by 10 or 20 degrees, and transmitting it over XYZ'snetwork, the network doesn't recognize the codes and therefore does notflag illicit uses of their material, and the receiver of the pirate'srotated material simply unrotates it.

[0315] Summarizing this last example via logical categories, thenon-symmetric universal codes are quite acceptable for the “enablementof authorized action based on the finding of the codes,” whereas it canbe somewhat easily by-passed in the case of “random monitoring(policing) for the presence of codes.” [Bear in mind that thenon-symmetric universal codes may very well catch 90% of illicit uses,i.e. 90% of the illicit users wouldn't bother even going to the simpleby-pass of rotation.] To address this latter category, the use ofquasi-rotationally symmetric universal codes is called for. “Quasi”derives from the age old squaring the circle issue, in this instancetranslating into not quite being able to represent a full incrementallyrotational symmetric 2-D object on a square grid of pixels. Furthermore,basic considerations must be made for scale/magnification changes of theuniversal codes. It is understood that the monitoring process must beperformed when the monitored visual material is in the “perceptual”domain, i.e. when it has been unencrypted or unscrambled and in the formwith which it is (or would be) presented to a human viewer. Would-bepirates could attempt to use other simple visual scrambling andunscrambling techniques, and tools could be developed to monitor forthese telltale scrambled signals. Said another way, would-be pirateswould then look to transform visual material out of the perceptualdomain, pass by a monitoring point, and then transform the material backinto the perceptual domain; tools other than the monitoring foruniversal codes would need to be used in such scenarios. The monitoringdiscussed here therefore applies to applications where monitoring can beperformed in the perceptual domain, such as when it is actually sent toviewing equipment.

[0316] The “ring” is the only full rotationally symmetric twodimensional object. The “disk” can be seen as a simple finite series ofconcentric and perfectly abutted rings having width along their radialaxis. Thus, the “ring” needs to be the starting point from which a morerobust universal code standard for images is found. The ring also willfit nicely into the issue of scale/magnification changes, where theradius of a ring is a single parameter to keep track of and account for.Another property of the ring is that even the case where differentialscale changes are made to different spatial axes in an image, and thering turns into an oval, many of the smooth and quasi-symmetricproperties that any automated monitoring system will be looking for aregenerally maintained. Likewise, appreciable geometric distortion of anyimage will clearly distort rings but they can still maintain grosssymmetric properties. Hopefully, more pedestrian methods such as simply“viewing” imagery will be able to detect attempted illicit piracy inthese regards, especially when such lengths are taken to by-pass theuniversal coding system.

[0317] Rings to Knots

[0318] Having discovered the ring as the only ideal symmetric patternupon whose foundation a full rotationally robust universal coding systemcan be built, we must turn this basic pattern into something functional,something which can carry information, can be read by computers andother instrumentation, can survive simple transformations andcorruptions, and can give rise to reasonably high levels of security(probably not unbreakable, as the section on universal codes explained)in order to keep the economics of subversion as a simple incrementalcost item.

[0319] One embodiment of the “ring-based” universal codes is what theinventor refers to as “knot patterns” or simply “knots,” in deference towoven Celtic knot patterns which were later refined and exalted in theworks of Leonardo Da Vinci (e.g. Mona Lisa, or his knot engravings).Some rumors have it that these drawings of knots were indeedsteganographic in nature, i.e. conveying messages and signatures; allthe more appropriate. FIGS. 18 and 19 explore some of the fundamentalproperties of these knots.

[0320] Two simple examples of knot patterns are depicted by thesupra-radial knots, 850 and the radial knots 852. The names of thesetypes are based on the central symmetry point of the splayed rings andwhether the constituent rings intersect this point, are fully outsideit, or in the case of sub-radial knots the central point would be insidea constituent circle. The examples of 850 and 852 clearly show asymmetrical arrangement of 8 rings or circles. “Rings” is the moreappropriate term, as discussed above, in that this term explicitlyacknowledges the width of the rings along the radial axis of the ring.It is each of the individual rings in the knot patterns 850 and 852which will be the carrier signal for a single associated bit plane inour N-bit identification word. Thus, the knot patterns 850 and 852 eachare an 8-bit carrier of information. Specifically, assuming now that theknot patterns 850 and 852 are luminous rings on a black background, thenthe “addition” of a luminous ring to an independent source image couldrepresent a “1” and the “subtraction” of a luminous ring from anindependent source image could represent a “0.” The application of thissimple encoding scheme could then be replicated over and over as in FIG.19 and its mosaic of knot patterns, with the ultimate step of adding ascaled down version of this encoded (modulated) knot mosaic directly andcoextensively to the original image, with the resultant being thedistributable image which has been encoded via this universal symmetriccoding method. It remains to communicate to a decoding system which ringis the least significant bit in our N-bit identification word and whichis the most significant. One such method is to make a slightly ascendingscale of radii values (of the individual rings) from the LSB to the MSB.Another is to merely make the MSB, say, 10% larger radius than all theothers and to pre-assign counterclockwise as the order with which theremaining bits fall out. Yet another is to put some simple hash markinside one and only one circle. In other words, there are a variety ofways with which the bit order of the rings can be encoded in these knotpatterns.

[0321] A procedure for, first, checking for the mere existence of theseknot patterns and, second, for reading of the N-bit identification word,is as follows. A suspect image is first fourier transformed via theextremely common 2D FFT computer procedure. Assuming that we don't knowthe exact scale of the knot patterns, i.e., we don't know the radius ofan elemental ring of the knot pattern in the units of pixels, and thatwe don't know the exact rotational state of a knot pattern, we merelyinspect (via basic automated pattern recognition methods) the resultingmagnitude of the Fourier transform of the original image for telltaleripple patterns (concentric low amplitude sinusoidal rings on top of thespatial frequency profile of a source image). The periodicity of theserings, along with the spacing of the rings, will inform us that theuniversal knot patterns are or are not likely present, and their scalein pixels. Classical small signal detection methods can be applied tothis problem just as they can to the other detection methodologies ofthis disclosure. Common spatial filtering can then be applied to thefourier transformed suspect image, where the spatial filter to be usedwould pass all spatial frequencies which are on the crests of theconcentric circles and block all other spatial frequencies. Theresulting filtered image would be fourier transformed out of the spatialfrequency domain back into the image space domain, and almost by visualinspection the inversion or non-inversion of the luminous rings could bedetected, along with identification of the MSB or LSB ring, and the (inthis case 8) N-bit identification code word could be found. Clearly, apattern recognition procedure could perform this decoding step as well.

[0322] The preceding discussion and the method it describes has certainpractical disadvantages and shortcomings which will now be discussed andimproved upon. The basic method was presented in a simple-minded fashionin order to communicate the basic principles involved.

[0323] Let's enumerate a few of the practical difficulties of the abovedescribed universal coding system using the knot patterns. For one (1),the ring patterns are somewhat inefficient in their “covering” of thefull image space and in using all of the information carrying capacityof an image extent. Second (2), the ring patterns themselves will almostneed to be more visible to the eye if they are applied, say, in astraightforward additive way to an 8-bit black and white image. Next(3), the “8” rings of FIG. 18, 850 and 852, is a rather low number, andmoreover, there is a 22 and one half degree rotation which could beapplied to the figures which the recognition methods would need tocontend with (360 divided by 8 divided by 2). Next (4), strictoverlapping of rings would produce highly condensed areas where theadded and subtracted brightness could become quite appreciable. Next(5), the 2D FFT routine used in the decoding is notoriouslycomputationally cumbersome as well as some of the pattern recognitionmethods alluded to. Finally (6), though this heretofore described formof universal coding does not pretend to have ultra-high security in theclassical sense of top security communications systems, it wouldnevertheless be advantageous to add certain security features whichwould be inexpensive to implement in hardware and software systems whichat the same time would increase the cost of would-be pirates attemptingto thwart the system, and increase the necessary sophistication level ofthose pirates, to the point that a would-be pirate would have to go sofar out of their way to thwart the system that willfulness would beeasily proven and hopefully subject to stiff criminal liability andpenalty (such as the creation and distribution of tools which stripcreative property of these knot pattern codes).

[0324] All of these items can be addressed and should continue to berefined upon in any engineering implementation of the principles of thetechnology. This disclosure addresses these items with reference to thefollowing embodiments.

[0325] Beginning with item number 3, that there are only 8 ringsrepresented in FIG. 18 is simply remedied by increasing the number ofrings. The number of rings that any given application will utilize isclearly a function of the application. The trade-offs include but arenot limited to: on the side which argues to limit the number of ringsutilized, there will ultimately be more signal energy per ring (pervisibility) if there are less rings; the rings will be less crowded sothat there discernment via automated recognition methods will befacilitated; and in general since they are less crowded, the full knotpattern can be contained using a smaller overall pixel extent, e.g. a 30pixel diameter region of image rather than a 100 pixel diameter region.The arguments to increase the number of rings include: the desire totransmit more information, such as ascii information, serial numbers,access codes, allowed use codes and index numbers, history information,etc.; another key advantage of having more rings is that the rotation ofthe knot pattern back into itself is reduced, thereby allowing therecognition methods to deal with a smaller range of rotation angles(e.g., 64 rings will have a maximum rotational displacement of justunder 3 degrees, i.e. maximally dissimilar to its original pattern,where a rotation of about 5 and one half degrees brings the knot patternback into its initial alignment; the need to distinguish the MSB/LSB andthe bit plane order is better seen in this example as well). It isanticipated that most practical applications will choose between 16 and128 rings, corresponding to N=16 to N=128 for the choice of the numberof bits in the N-bit identification code word. The range of this choicewould somewhat correlate to the overall radius, in pixels, allotted toan elemental knot pattern such as 850 or 852.

[0326] Addressing the practical difficulty item number 4, that of thecondensation of rings patterns at some points in the image and lack ofring patterns in others (which is very similar, but still distinct from,item 1, the inefficient covering), the following improvement can beapplied. FIG. 18 shows an example of a key feature of a “knot” (asopposed to a pattern of rings) in that where patterns would supposedlyintersect, a virtual third dimension is posited whereby one strand ofthe knot takes precedence over another strand in some predefined way;see item 854. In the terms of imagery, the brightness or dimness of agiven intersection point in the knot patterns would be “assigned” to oneand only one strand, even in areas where more than two strands overlap.The idea here is then extended, 864, to how rules about this assignmentshould be carried out in some rotationally symmetric manner. Forexample, a rule would be that, travelling clockwise, an incoming strandto a loop would be “behind” an outgoing strand. Clearly there are amultitude of variations which could be applied to these rules, manywhich would critically depend on the geometry of the knot patternschosen. Other issues involved will probably be that the finite width,and moreover the brightness profile of the width along the normal axisto the direction of a strand, will all play a role in the rules ofbrightness assignment to any given pixel underlying the knot patterns.

[0327] A major improvement to the nominal knot pattern system previouslydescribed directly addresses practical difficulties (1), the inefficientcovering, (2) the unwanted visibility of the rings, and (6) the need forhigher levels of security. This improvement also indirectly address item(4) the overlapping issue, which has been discussed in the lastparagraph. This major improvement is the following: just prior to thestep where the mosaic of the encoded knot patterns is added to anoriginal image to produce a distributable image, the mosaic of encodedknot patterns, 866, is spatially filtered (using common 2D FFTtechniques) by a standardized and (generally smoothly) random phase-onlyspatial filter. It is very important to note that this phase-only filteris itself fully rotationally symmetric within the spatial frequencydomain, i.e. its filtering effects are fully rotationally symmetric. Theeffect of this phase-only filter on an individual luminous ring is totransform it into a smoothly varying pattern of concentric rings, nottotally dissimilar to the pattern on water several instances after apebble is dropped in, only that the wave patterns are somewhat random inthe case of this phase-only filter rather than the uniform periodicityof a pebble wave pattern. FIG. 20 attempts to give a rough (i.e.non-greyscale) depiction of these phase-only filtered ring patterns. Thetop figure of FIG. 20 is a cross section of a typical brightnesscontour/profile 874 of one of these phase-only filtered ring patterns.Referenced in the figure is the nominal location of the pre-filteredouter ring center, 870. The center of an individual ring, 872, isreferenced as the point around which the brightness profile is rotatedin order to fully describe the two dimensional brightness distributionof one of these filtered patterns. Yet another rough attempt tocommunicate the characteristics of the filtered ring is depicted as 876,a crude greyscale image of the filtered ring. This phase-only filteredring, 876 will can be referred to as a random ripple pattern.

[0328] Not depicted in FIG. 20 is the composite effects of phase-onlyfiltering on the knot patterns of FIG. 18, or on the mosaic of knotpatterns 866 in FIG. 19. Each of the individual rings in the knotpatterns 850 or 852 will give rise to a 2D brightness pattern of thetype 876, and together they form a rather complicated brightnesspattern. Realizing that the encoding of the rings is done by making itluminous (1) or “anti-luminous” (0), the resulting phase-only filteredknot patterns begin to take on subtle characteristics which no longermake direct sense to the human eye, but which are still readilydiscernable to a computer especially after the phase-only filtering isinverse filtered reproducing the original rings patterns.

[0329] Returning now to FIG. 19, we can imagine that an 8-bitidentification word has been encoded on the knot patterns and the knotpatterns phase-only filtered. The resulting brightness distributionwould be a rich tapestry of overlapping wave patterns which would have acertain beauty, but would not be readily intelligible to the eye/brain.[An exception to this might draw from the lore of the South PacificIsland communities, where it is said that sea travellers have learnedthe subtle art of reading small and multiply complex ocean wavepatterns, generated by diffracted and reflected ocean waves off ofintervening islands, as a primary navigational tool.] For want of abetter term, the resulting mosaic of filtered knot patterns (derivedfrom 866) can be called the encoded knot tapestry or just the knottapestry. Some basic properties of this knot tapestry are that itretains the basic rotational symmetry of its generator mosaic, it isgenerally unintelligible to the eye/brain, thus raising it a notch onthe sophistication level of reverse engineering, it is more efficient atusing the available information content of a grid of pixels (more onthis in the next section), and if the basic knot concepts 854 and 864are utilized, it will not give rise to local “hot spots” where thesignal level becomes unduly condensed and hence objectionably visible toa viewer.

[0330] The basic decoding process previously described would now needthe additional step of inverse filtering the phase-only filter used inthe encoding process. This inverse filtering is quite well known in theimage processing industry. Provided that the scale of the knot patternsare known a priori, the inverse filtering is straightforward. If on theother hand the scale of the knot patterns is not known, then anadditional step of discovering this scale is in order. One such methodof discovering the scale of the knot patterns is to iteratively applythe inverse phase-only filter to variously scaled version of an imagebeing decoded, searching for which scale-version begins to exhibitnoticeable knot patterning. A common search algorithm such as thesimplex method could be used in order to accurately discover the scaleof the patterns. The field of object recognition should also beconsulted, under the general topic of unknown-scale object detection.

[0331] An additional point about the efficiency with which the knottapestry covers the image pixel grid is in order. Most applications ofthe knot tapestry method of universal image coding will posit theapplication of the fully encoded tapestry (i.e. the tapestry which hasthe N-bit identification word embedded) at a relative low brightnesslevel into the source image. In real terms, the brightness scale of theencoded tapestry will vary from, for example, −5 grey scale values to 5grey scale values in a typical 256 grey scale image, where thepreponderance of values will be within −2 and 2. This brings up thepurely practical matter that the knot tapestry will be subject toappreciable bit truncation error. Put as an example, imagine aconstructed knot tapestry nicely utilizing a full 256 grey level image,then scaling this down by a factor of 20 in brightness including the bittruncation step, then rescaling this truncated version back up inbrightness by the same factor of 20, then inverse phase-only filteringthe resultant. The resulting knot pattern mosaic will be a noticeablydegraded version of the original knot pattern mosaic. The point ofbringing all of this up is the following: it will be a simply defined,but indeed challenging, engineering task to select the various freeparameters of design in the implementation of the knot tapestry method,the end goal being to pass a maximum amount of information about theN-bit identification word within some pre-defined visibility toleranceof the knot tapestry. The free parameters include but would not be fullylimited to: the radius of the elemental ring in pixels, N or the numberof rings, the distance in pixels from the center of a knot pattern tothe center of an elemental ring, the packing criteria and distances ofone knot pattern with the others, the rules for strand weaving, and theforms and types of phase-only filters to be used on the knot mosaics. Itwould be desirable to feed such parameters into a computer optimizationroutine which could assist in their selection. Even this would beginsurely as more of an art than a science due to the many non-linear freeparameters involved.

[0332] A side note on the use of phase-only filtering is that it canassist in the detection of the ring patterns. It does so in that theinverse filtering of the decoding process tends to “blur” the underlyingsource image upon which the knot tapestry is added, while at the sametime “bringing into focus” the ring patterns. Without the blurring ofthe source image, the emerging ring patterns would have a harder time“competing” with the sharp features of typical images. The decodingprocedure should also utilize the gradient thresholding method describedin another section. Briefly, this is the method where if it is knownthat a source signal is much larger in brightness than our signaturesignals, then an image being decoded can have higher gradient areasthresholded in the service of increasing the signal level of thesignature signals relative to the source signal.

[0333] As for the other practical difficulty mentioned earlier, item (5)which deals with the relative computational overhead of the 2D FFTroutine and of typical pattern recognition routines, the first remedyhere posited but not filled is to find a simpler way of quicklyrecognizing and decoding the polarity of the ring brightnesses than thatof using the 2D FFT. Barring this, it can be seen that if the pixelextent of an individual knot pattern (850 or 852) is, for example, 50pixels in diameter, than a simple 64 by 64 pixel 2D FFT on some sectionof an image may be more than sufficient to discern the N-bitidentification word as previously described. The idea would be to usethe smallest image region necessary, as opposed to being required toutilize an entire image, to discern the N-bit identification word.

[0334] Another note is that those practitioners in the science of imageprocessing will recognize that instead of beginning the discussion onthe knot tapestry with the utilization of rings, we could have insteadjumped right to the use of 2D brightness distribution patterns 876, QUAbases functions. The use of the “ring” terminology as the baselinetechnology is partly didactic, as is appropriate for patent disclosuresin any event. What is more important, perhaps, is that the use of true“rings” in the decoding process, post-inverse filtering, is probably thesimplest form to input into typical pattern recognition routines.

[0335] Neural Network Decoders

[0336] Those skilled in the signal processing art will recognize thatcomputers employing neural network architectures are well suited to thepattern recognition and detection-of-small-signal-in-noise issues posedby the present technology. While a complete discourse on these topics isbeyond the scope of this specification, the interested reader isreferred to, e.g., Cherkassky, V., “From Statistics to Neural Networks:Theory & Pattern Recognition Applications,” Springer-Verlag, 1994;Masters, T., “Signal & Image Processing with Neural Networks: CSourcebook,” Wiley, 1994; Guyon, I, “Advances in Pattern RecognitionSystems Using Neural Networks,” World Scientific Publishers, 1994;Nigrin, A., “Neural Networks for Pattern Recognition,” MIT Press, 1993;Cichoki, A., “Neural Networks for Optimization & Signal Processing,”Wiley, 1993; and Chen, C., “Neural Networks for Pattern Recognition &Their Applications,” World Scientific Publishers, 1991.

2D UNIVERSAL CODES II: SIMPLE SCAN LINE IMPLEMENTATION OF THE ONEDIMENSIONAL CASE

[0337] The above section on rings, knots and tapestries certainly hasits beauty, but some of the steps involved may have enough complexitythat practical implementations may be too costly for certainapplications. A poor cousin the concept of rings and well-designedsymmetry is to simply utilize the basic concepts presented in connectionwith FIG. 9 and the audio signal, and apply them to two dimensionalsignals such as images, but to do so in a manner where, for example,each scan line in an image has a random starting point on, for example,a 1000 pixel long universal noise signal. It would then be incumbentupon recognition software and hardware to interrogate imagery across thefull range of rotational states and scale factors to “find” theexistence of these universal codes.

THE UNIVERSAL COMMERCIAL COPYRIGHT (UCC) IMAGE, AUDIO, AND VIDEO FILEFORMATS

[0338] It is as well known as it is regretted that there exist aplethora of file format standards (and not-so-standards) for digitalimages, digital audio, and digital video. These standards have generallybeen formed within specific industries and applications, and as theusage and exchange of creative digital material proliferated, thevarious file formats slugged it out in cross-disciplinary arenas, wheretoday we find a de facto histogram of devotees and users of the variousfavorite formats. The JPEG, MPEG standards for formatting andcompression are only slight exceptions it would seem, where someconcerted cross-industry collaboration came into play.

[0339] The cry for a simple universal standard file format foraudio/visual data is as old as the hills. The cry for the protection ofsuch material is older still. With all due respect to the innatedifficulties attendant upon the creation of a universal format, and withall due respect to the pretentiousness of outlining such a plan within apatent disclosure, the inventor does believe that these methods canserve perhaps as well as anything for being the foundation upon which anaccepted world-wide “universal commercial copyright” format is built.Practitioners know that such animals are not built by proclamation, butthrough the efficient meeting of broad needs, tenacity, and luck. Moregermane to the purposes of this disclosure is the fact that theapplication of this technology would benefit if it could become acentral piece within an industry standard file format. The use ofuniversal codes in particular could be specified within such a standard.The fullest expression of the commercial usage of this technology comesfrom the knowledge that the invisible signing is taking place and theconfidence that instills in copyright holders.

[0340] The following is a list of reasons that the principles of thistechnology could serve as the catalyst for such a standard: (1) Few ifany technical developments have so isolated and so pointedly addressedthe issue of broad-brush protection of empirical data and audio/visualmaterial; (2) All previous file formats have treated the informationabout the data, and the data itself, as two separate and physicallydistinct entities, whereas the methods of this technology can combinethe two into one physical entity; (3) The mass scale application of theprinciples of this technology will require substantial standardizationwork in the first place, including integration with the years-to-comeimprovements in compression technologies, so the standardsinfrastructure will exist by default; (4) the growth of multimedia hascreated a generic class of data called “content,” which includes text,images, sound, and graphics, arguing for higher and higher levels of“content standards”; and (5) marrying copyright protection technologyand security features directly into a file format standard is longoverdue.

[0341] Elements of a universal standard would certainly include themirroring aspects of the header verification methods, where headerinformation is verified by signature codes directly within data. Also, auniversal standard would outline how hybrid uses of fully private codesand public codes would commingle. Thus, if the public codes were“stripped” by sophisticated pirates, the private codes would remainintact. A universal standard would specify how invisible signatureswould evolve as digital images and audio evolve. Thus, when a givenimage is created based on several source images, the standard wouldspecify how and when the old signatures would be removed and replaced bynew signatures, and if the header would keep track of these evolutionsand if the signatures themselves would keep some kind of record.

PIXELS VS. BUMPS

[0342] Most of the disclosure focuses on pixels being the basic carriersof the N-bit identification word. The section discussing the use of asingle “master code signal” went so far as to essentially “assign” eachand every pixel to a unique bit plane in the N-bit identification word.

[0343] For many applications, with one exemplar being that of ink basedprinting at 300 dots per inch resolution, what was once a pixel in apristine digital image file becomes effectively a blob (e.g. of ditheredink on a piece of paper). Often the isolated information carryingcapacity of the original pixel becomes compromised by neighboring pixelsspilling over into the geometrically defined space of the originalpixel. Those practiced in the art will recognize this as simple spatialfiltering and various forms of blurring.

[0344] In such circumstances it may be more advantageous to assign acertain highly local group of pixels to a unique bit plane in the N-bitidentification word, rather than merely a single pixel. The end goal issimply to pre-concentrate more of the signature signal energy into thelower frequencies, realizing that most practical implementations quicklystrip or mitigate higher frequencies.

[0345] A simple-minded approach would be to assign a 2 by 2 block ofpixels all to be modulated with the same ultimate signature grey value,rather than modulating a single assigned pixel. A more fancy approach isdepicted in FIG. 21, where an array of pixel groups is depicted. This isa specific example of a large class of configurations. The idea is thatnow a certain small region of pixels is associated with a given uniquebit plane in the N-bit identification word, and that this groupingactually shares pixels between bit planes (though it doesn't necessaryhave to share pixels, as in the case of a 2×2 block of pixels above).

[0346] Depicted in FIG. 21 is a 3×3 array of pixels with an examplenormalized weighting (normalized -- > the weights add up to 1). Themethods of this technology now operate on this elementary “bump,” as aunit, rather than on a single pixel. It can be seen that in this examplethere is a fourfold decrease in the number of master code values thatneed to be stored, due to the spreading out of the signature signal.Applications of this “bump approach” to placing in invisible signaturesinclude any application which will experience a priori known highamounts of blurring, where proper identification is still desired evenafter this heavy blurring.

MORE ON THE STEGANOGRAPHIC USES OF THIS TECHNOLOGY

[0347] As mentioned in the initial sections of the disclosure,steganography as an art and as a science is a generic prior art to thistechnology. Putting the shoe on the other foot now, and as alreadydoubtless apparent to the reader who has ventured thus far, the methodsof this technology can be used as a novel method for performingsteganography. (Indeed, all of the discussion thus far may be regardedas exploring various forms and implementations of steganography.)

[0348] In the present section, we shall consider steganography as theneed to pass a message from point A to point B, where that message isessentially hidden within generally independent empirical data. Asanyone in the industry of telecommunications can attest to, the range ofpurposes for passing messages is quite broad. Presumably there would besome extra need, beyond pure hobby, to place messages into empiricaldata and empirical signals, rather than sending those messages via anynumber of conventional and straightforward channels. Past literature andproduct propaganda within steganography posits that such an extra need,among others, might be the desire to hide the fact that a message iseven being sent. Another possible need is that a conventionalcommunications channel is not available directly or is cost prohibitive,assuming, that is, that a sender of messages can “transmit” theirencoded empirical data somehow. This disclosure includes by referenceall previous discussions on the myriad uses to which steganography mightapply, while adding the following uses which the inventor has notpreviously seen described.

[0349] The first such use is very simple. It is the need to carrymessages about the empirical data within which the message is carried.The little joke is that now the media is truly the message, though itwould be next to impossible that some previous steganographer hasn'talready exploited this joke. Some of the discussion on placinginformation about the empirical data directly inside that empirical datawas already covered in the section on replacing the header and theconcept of the “bodier.” This section expands upon that sectionsomewhat.

[0350] The advantages of placing a message about empirical data directlyin that data is that now only one class of data object is present ratherthan the previous two classes. In any two class system, there is therisk of the two classes becoming disassociated, or one class corruptedwithout the other knowing about it. A concrete example here is what theinventor refers to as “device independent instructions.”

[0351] There exist zillions of machine data formats and data fileformats. This plethora of formats has been notorious in its power toimpede progress toward universal data exchange and having one machine dothe same thing that another machine can do. The instructions that anoriginator might put into a second class of data (say the header) maynot at all be compatible with a machine which is intended to recognizethese instructions. If format conversions have taken place, it is alsopossible that critical instructions have been stripped along the way, orgarbled. The improvements disclosed here can be used as a way to “sealin” certain instructions directly into empirical data in such a way thatall that is needed by a reading machine to recognize instructions andmessages is to perform a standardized “recognition algorithm” on theempirical data (providing of course that the machine can at the veryleast “read” the empirical data properly). All machines could implementthis algorithm any old way they choose, using any compilers or internaldata formats that they want.

[0352] Implementation of this device independent instruction methodwould generally not be concerned over the issue of piracy or illicitremoval of the sealed in messages. Presumably, the embedded messages andinstructions would be a central valuable component in the basic valueand functioning of the material.

[0353] Another example of a kind of steganographic use of the technologyis the embedding of universal use codes for the benefit of a usercommunity. The “message” being passed could be simply a registeredserial number identifying ownership to users who wish to legitimatelyuse and pay for the empirical information. The serial number could indexinto a vast registry of creative property, containing the name or namesof the owners, pricing information, billing information, and the like.The “message” could also be the clearance of free and public use forsome given material. Similar ownership identification and use indexingcan be achieved in two class data structure methods such as a header,but the use of the single class system of this technology may offercertain advantages over the two class system in that the single classsystem does not care about file format conversion, headercompatibilities, internal data format issues, header/body archivingissues, and media transformations.

[0354] Fully Exact Steganography

[0355] Prior art steganographic methods currently known to the inventorgenerally involve fully deterministic or “exact” prescriptions forpassing a message. Another way to say this is that it is a basicassumption that for a given message to be passed correctly in itsentirety, the receiver of the information needs to receive the exactdigital data file sent by the sender, tolerating no bit errors or “loss”of data. By definition, “lossy” compression and decompression onempirical signals defeat such steganographic methods. (Prior art, suchas the previously noted Komatsu work, are the exceptions here.)

[0356] The principles of this technology can also be utilized as anexact form of steganography proper. It is suggested that such exactforms of steganography, whether those of prior art or those of thistechnology, be combined with the relatively recent art of the “digitalsignature” and/or the DSS (digital signature standard) in such a waythat a receiver of a given empirical data file can first verify that notone single bit of information has been altered in the received file, andthus verify that the contained exact steganographic message has not beenaltered.

[0357] The simplest way to use the principles of this technology in anexact steganographic system is to utilize the previously discussed“designed” master noise scheme wherein the master snowy code is notallowed to contain zeros. Both a sender and a receiver of informationwould need access to BOTH the master snowy code signal AND the originalunencoded original signal. The receiver of the encoded signal merelysubtracts the original signal giving the difference signal and thetechniques of simple polarity checking between the difference signal andthe master snowy code signal, data sample to data sample, producing athe passed message a single bit at a time. Presumably data samples withvalues near the “rails” of the grey value range would be skipped (suchas the values 0,1,254 and 255 in 8-bit depth empirical data).

[0358] Statistical Steganography

[0359] The need for the receiver of a steganographic embedded data fileto have access to the original signal can be removed by turning to whatthe inventor refers to as “statistical steganography.” In this approach,the methods of this technology are applied as simple a priori rulesgoverning the reading of an empirical data set searching for an embeddedmessage. This method also could make good use of it combination withprior art methods of verifying the integrity of a data file, such aswith the DSS. (See, e.g., Walton, “Image Authentication for a SlipperyNew Age,” Dr. Dobb's Journal, April, 1995, p. 18 for methods ofverifying the sample-by-sample, bit-by-bit, integrity of a digitalimage.)

[0360] Statistical steganography posits that a sender and receiver bothhave access to the same master snowy code signal. This signal can beentirely random and securely transmitted to both parties, or generatedby a shared and securely transmitted lower order key which generates alarger quasi-random master snowy code signal. It is a priori definedthat 16 bit chunks of a message will be passed within contiguous 1024sample blocks of empirical data, and that the receiver will use dotproduct decoding methods as outlined in this disclosure. The sender ofthe information pre-checks that the dot product approach indeed producesthe accurate 16 bit values (that is, the sender pre-checks that thecross-talk between the carrier image and the message signal is not suchthat the dot product operation will produce an unwanted inversion of anyof the 16 bits). Some fixed number of 1024 sample blocks are transmittedand the same number times 16 bits of message is therefore transmitted.DSS techniques can be used to verify the integrity of a message when thetransmitted data is known to only exist in digital form, whereasinternal checksum and error correcting codes can be transmitted insituations where the data may be subject to change and transformation inits transmission. In this latter case, it is best to have longer blocksof samples for any given message content size (such as 10K samples for a16 bit message chunk, purely as an example).

[0361] Continuing for a moment on the topic of error correctingsteganography, it will be recognized that many decoding techniquesdisclosed herein operate on the principle of distinguishing pixels (orbumps) which have been augmented by the encoded data from those thathave been diminished by the encoded data. The distinguishing of thesepositive and negative cases becomes increasingly difficult as the deltavalues (e.g. the difference between an encoded pixel and thecorresponding original pixel) approach zero.

[0362] An analogous situation arises in certain modem transmissiontechniques, wherein an ambiguous middle ground separates the two desiredsignal states (e.g. +/−1). Errors deriving from incorrect interpretationof this middle ground are sometimes termed “soft errors.” Principlesfrom modem technology, and other technologies where such problems arise,can likewise be applied to mitigation of such errors in the presentcontext.

[0363] One approach is to weight the “confidence” of each deltadetermination. If the pixel (bump) clearly reflects one state or theother (e.g. +/−1), its “confidence” is said to be high, and it is givena proportionately greater weighting. Conversely, if the pixel (bump) isrelatively ambiguous in its interpretation, its confidence iscommensurately lower, and it is given a proportionately lesserweighting. By weighting the data from each pixel (bump) in accordancewith its confidence value, the effects of soft errors can be greatlyreduced.

[0364] The foregoing procedure, while theoretically simple, relies onweightings which are best determined empirically. Accordingly, such anapproach is not necessarily straightforward.

[0365] An alternative approach is to assign confidence values not tointerpretations of individual pixels, but rather to determination of bitvalues—either from an image excerpt, or across the entire image. In suchan arrangement, each decoded message bit is given a confidence valuedepending on the ambiguity (or not) of the image statistics by which itsvalue was determined.

[0366] Such confidence weighting can also be used as a helpful adjunctwith other error detecting/correcting schemes. For example, in knownerror correcting polynomials, the above-detailed weighting parameterscan be used to further hone polynomial-based discernment of an error'slocation.

THE “NOISE” IN VECTOR GRAPHICS AND VERY-LOW-ORDER INDEXED GRAPHICS

[0367] The methods of this disclosure generally posit the existence of“empirical signals,” which is another way of saying signals which havenoise contained within them almost by definition. There are two classesof 2 dimensional graphics which are not generally considered to havenoise inherent in them: vector graphics and certain indexed bit-mappedgraphics. Vector graphics and vector graphic files are generally fileswhich contain exact instructions for how a computer or printer drawslines, curves and shapes. A change of even one bit value in such a filemight change a circle to a square, as a very crude example. In otherwords, there is generally no “inherent noise” to exploit within thesefiles. Indexed bit-mapped graphics refers to images which are composedof generally a small number of colors or grey values, such as 16 in theearly CGA displays on PC computers. Such “very-low-order” bit-mappedimages usually display graphics and cartoons, rather than being used inthe attempted display of a digital image taken with a camera of thenatural world. These types of very-low-order bit-mapped graphics alsoare generally not considered to contain “noise” in the classic sense ofthat term. The exception is where indexed graphic files do indeedattempt to depict natural imagery, such as with the GIF (graphicinterchange format of Compuserve), where the concept of “noise” is stillquite valid and the principles of this technology still quite valid.These latter forms often use dithering (similar to pointillist paintingsand color newspaper print) to achieve near lifelike imagery.

[0368] This section concerns this class of 2 dimensional graphics whichtraditionally do not contain “noise.” This section takes a brief look athow the principles of this technology can still be applied in somefashion to such creative material.

[0369] The easiest way to apply the principles of this technology tothese “noiseless” graphics is to convert them into a form which isamenable to the application of the principles of this technology. Manyterms have been used in the industry for this conversion, including“ripping” a vector graphic (raster image processing) such that a vectorgraphic file is converted to a greyscale pixel-based raster image.Programs such as Photoshop by Adobe have such internal tools to convertvector graphic files into RGB or greyscale digital images. Once thesefiles are in such a form, the principles of this technology can beapplied in a straightforward manner. Likewise, very-low-indexed bitmapscan be converted to an RGB digital image or an equivalent. In the RGBdomain, the signatures can be applied to the three color channels inappropriate ratios, or the RGB image can be simply converted into agreyscale/chroma format such as “Lab” in Adobe's Photoshop software, andthe signatures can be applied to the “Lightness channel” therein. Sincemost of the distribution media, such as videotapes, CD-ROMs, MPEG video,digital images, and print are all in forms which are amenable to theapplication of the principles of this technology, this conversion fromvector graphic form and very-low-order graphic form is often done in anyevent.

[0370] Another way to apply the principles of this technology to vectorgraphics and very-low-order bitmapped graphics is to recognize that,indeed, there are certain properties to these inherent graphic formatswhich—to the eye—appear as noise. The primary example is the borders andcontours between where a given line or figure is drawn or not drawn, orexactly where a bit-map changes from green to blue. In most cases, ahuman viewer of such graphics will be keenly aware of any attempts to“modulate signature signals” via the detailed and methodical changing ofthe precise contours of a graphic object. Nevertheless, such encoding ofthe signatures is indeed possible. The distinction between this approachand that disclosed in the bulk of this disclosure is that now thesignatures must ultimately derive from what already exists in a givengraphic, rather than being purely and separately created and added intoa signal. This disclosure points out the possibilities here nonetheless.The basic idea is to modulate a contour, a touch right or a touch left,a touch up or a touch down, in such a way as to communicate an N-bitidentification word. The locations of the changes contours would becontained in a an analogous master noise image, though now the noisewould be a record of random spatial shifts one direction or another,perpendicular to a given contour. Bit values of the N-bit identificationword would be encoded, and read, using the same polarity checking methodbetween the applied change and the change recorded in the master noiseimage.

PLASTIC CREDIT AND DEBIT CARD SYSTEMS BASED ON THE PRINCIPLES OF THETECHNOLOGY

[0371] Growth in the use of plastic credit cards, and more recentlydebit cards and ATM cash cards, needs little introduction. Nor doesthere need to be much discussion here about the long history of fraudand illicit uses of these financial instruments. The development of thecredit card hologram, and its subsequent forgery development, nicelyserves as a historic example of the give and take of plastic cardsecurity measures and fraudulent countermeasures. This section willconcern itself with how the principles of this technology can berealized in an alternative, highly fraud-proof yet cost effectiveplastic card-based financial network.

[0372] A basic list of desired features for an ubiquitous plasticeconomy might be as follows: 1) A given plastic financial card iscompletely impossible to forge; 2) An attempted forged card (a“look-alike”) cannot even function within a transaction setting; 3)Intercepted electronic transactions by a would-be thief would not in anyway be useful or re-useable; 4) In the event of physical theft of anactual valid card, there are still formidable obstacles to a thief usingthat card; and 5) The overall economic cost of implementation of thefinancial card network is equal to or less than that of the currentinternational credit card networks, i.e., the fully loaded cost pertransaction is equal to or less than the current norm, allowing forhigher profit margins to the implementors of the networks. Apart fromitem 5, which would require a detailed analysis of the engineering andsocial issues involved with an all out implementation strategy, thefollowing use of the principles of this technology may well achieve theabove list, even item 5.

[0373]FIGS. 22 through 26, along with the ensuing written material,collectively outline what is referred to in FIG. 26 as “TheNegligible-Fraud Cash Card System.” The reason that the fraud-preventionaspects of the system are highlighted in the title is that fraud, andthe concomitant lost revenue therefrom, is apparently a central problemin today's plastic card based economies. The differential advantages anddisadvantages of this system relative to current systems will bediscussed after an illustrative embodiment is presented.

[0374]FIG. 22 illustrates the basic unforgeable plastic card which isquite unique to each and every user. A digital image 940 is taken of theuser of the card. A computer, which is hooked into the centralaccounting network, 980, depicted in FIG. 26, receives the digital image940, and after processing it (as will be described surrounding FIG. 24)produces a final rendered image which is then printed out onto thepersonal cash card 950. Also depicted in FIG. 22 is a straightforwardidentification marking, in this case a bar code 952, and optionalposition fiducials which may assist in simplifying the scanningtolerances on the Reader 958 depicted in FIG. 23.

[0375] The short story is that the personal cash card 950 actuallycontains a very large amount of information unique to that particularcard. There are no magnetic strips involved, though the same principlescan certainly be applied to magnetic strips, such as an implantedmagnetic noise signal (see earlier discussion on the “fingerprinting” ofmagnetic strips in credit cards; here, the fingerprinting would beprominent and proactive as opposed to passive). In any event, the uniqueinformation within the image on the personal cash card 950 is storedalong with the basic account information in a central accountingnetwork, 980, FIG. 26. The basis for unbreakable security is that duringtransactions, the central network need only query a small fraction ofthe total information contained on the card, and never needs to querythe same precise information on any two transactions. Hundreds if notthousands or even tens of thousands of unique and secure “transactiontokens” are contained within a single personal cash card. Would-bepirates who went so far as to pick off transmissions of either encryptedor even unencrypted transactions would find the information uselessthereafter. This is in marked distinction to systems which have a singlecomplex and complete “key” (generally encrypted) which needs to beaccessed, in its entirety, over and over again. The personal cash cardon the other hand contains thousands of separate and secure keys whichcan be used once, within milliseconds of time, then forever thrown away(as it were). The central network 980 keeps track of the keys and knowswhich have been used and which haven't.

[0376]FIG. 23 depicts what a typical point-of-sale reading device, 958,might look like. Clearly, such a device would need to be manufacturableat costs well in line with, or cheaper than, current cash registersystems, ATM systems, and credit card swipers. Not depicted in FIG. 23are the innards of the optical scanning, image processing, and datacommunications components, which would simply follow normal engineeringdesign methods carrying out the functions that are to be describedhenceforth and are well within the capability of artisans in thesefields. The reader 958 has a numeric punch pad 962 on it, showing that anormal personal identification number system can be combined with theoverall design of this system adding one more conventional layer ofsecurity (generally after a theft of the physical card has occurred). Itshould also be pointed out that the use of the picture of the user isanother strong (and increasingly common) security feature intended tothwart after-theft and illicit use. Functional elements such as theoptical window, 960, are shown, mimicking the shape of the card,doubling as a centering mechanism for the scanning. Also shown is thedata line cable 966 presumably connected either to a proprietor'scentral merchant computer system or possibly directly to the centralnetwork 980. Such a reader may also be attached directly to a cashregister which performs the usual tallying of purchased items. Perhapsoverkill on security would be the construction of the reader, 958, as atype of Faraday cage such that no electronic signals, such as the rawscan of the card, can emanate from the unit. The reader 958 does need tocontain, preferably, digital signal processing units which will assistin swiftly calculating the dot product operations described henceforth.It also should contain local read-only memory which stores a multitudeof spatial patterns (the orthogonal patterns) which will be utilized inthe “recognition” steps outlined in FIG. 25 and its discussion. Asrelated in FIG. 23, a consumer using the plastic card merely placestheir card on the window to pay for a transaction. A user could choosefor themselves if they want to use a PIN number or not. Approval of thepurchase would presumably happen within seconds, provided that thesignal processing steps of FIG. 25 are properly implemented witheffectively parallel digital processing hardware.

[0377]FIG. 24 takes a brief look at one way to process the raw digitalimage, 940, of a user into an image with more useful information contentand uniqueness. It should be clearly pointed out that the raw digitalimage itself could in fact be used in the following methods, but thatplacing in additional orthogonal patterns into the image cansignificantly increase the overall system. (Orthogonal means that, if agiven pattern is multiplied by another orthogonal pattern, the resultingnumber is zero, where “multiplication of patterns” is meant in the senseof vector dot products; these are all familiar terms and concepts in theart of digital image processing). FIG. 24 shows that the computer 942can, after interrogating the raw image 970, generate a master snowyimage 972 which can be added to the raw image 970 to produce a yet-moreunique image which is the image that is printed onto the actual personalcash card, 950. The overall effect on the image is to “texturize” theimage. In the case of a cash card, invisibility of the master snowypattern is not as much of a requirement as with commercial imagery, andone of the only criteria for keeping the master snowy image somewhatlighter is to not obscure the image of the user. The central network,980, stores the final processed image in the record of the account ofthe user, and it is this unique and securely kept image which is thecarrier of the highly secure “throw-away transaction keys.” This imagewill therefore be “made available” to all duly connected point-of-salelocations in the overall network. As will be seen, none of thepoint-of-sale locations ever has knowledge of this image, they merelyanswer queries from the central network.

[0378]FIG. 25 steps through a typical transaction sequence. The figureis laid out via indentations, where the first column are steps performedby the point-of-sale reading device 958, the second column hasinformation transmission steps communicated over the data line 966, andthe third column has steps taken by the central network 980 which hasthe secured information about the user's account and the user's uniquepersonal cash card 950. Though there is some parallelism possible in theimplementation of the steps, as is normally practiced in the engineeringimplementation of such systems, the steps are nevertheless laid outaccording to a general linear sequence of events.

[0379] Step one of FIG. 25 is the standard “scanning” of a personal cashcard 950 within the optical window 960. This can be performed usinglinear optical sensors which scan the window, or via a two dimensionaloptical detector array such as a CCD. The resulting scan is digitizedinto a grey scale image and stored in an image frame memory buffer suchas a “framegrabber,” as is now common in the designs of optical imagingsystems. Once the card is scanned, a first image processing step wouldprobably be locating the four fiducial center points, 954, and usingthese four points to guide all further image processing operations (i.e.the four fiducials “register” the corresponding patterns and barcodes onthe personal cash card). Next, the barcode ID number would be extractedusing common barcode reading image processing methods. Generally, theuser's account number would be determined in this step.

[0380] Step two of FIG. 25 is the optional typing in of the PIN number.Presumably most users would opt to have this feature, except those userswho have a hard time remembering such things and who are convinced thatno one will ever steal their cash card.

[0381] Step three of FIG. 25 entails connecting through a data line tothe central accounting network and doing the usual communicationshandshaking as is common in modem-based communications systems. A moresophisticated embodiment of this system would obviate the need forstandard phone lines, such as the use of optical fiber data links, butfor now we can assume it is a garden variety belltone phone line andthat the reader 958 hasn't forgotten the phone number of the centralnetwork.

[0382] After basic communications are established, step four shows thatthe point-of-sale location transmits the ID number found in step 1,along with probably an encrypted version of the PIN number (for addedsecurity, such as using the ever more ubiquitous RSA encryptionmethods), and appends the basic information on the merchant who operatesthe point-of-sale reader 958, and the amount of the requestedtransaction in monetary units.

[0383] Step five has the central network reading the ID number, routingthe information accordingly to the actual memory location of that user'saccount, thereafter verifying the PIN number and checking that theaccount balance is sufficient to cover the transaction. Along the way,the central network also accesses the merchant's account, checks that itis valid, and readies it for an anticipated credit.

[0384] Step six begins with the assumption that step five passed allcounts. If step five didn't, the exit step of sending a NOT OK back tothe merchant is not depicted. So, if everything checks out, the centralnetwork generates twenty four sets of sixteen numbers, where all numbersare mutually exclusive, and in general, there will be a large but quitedefinitely finite range of numbers to choose from. FIG. 25 posits therange being 64K or 65536 numbers. It can be any practical number,actually. Thus, set one of the twenty four sets might have the numbers23199, 54142, 11007, 2854, 61932, 32879, 38128, 48107, 65192, 522,55723, 27833, 19284, 39970, 19307, and 41090, for example. The next setwould be similarly random, but the numbers of set one would be offlimits now, and so on through the twenty four sets. Thus, the centralnetwork would send (16×24×2 bytes) of numbers or 768 bytes. The actualamount of numbers can be determined by engineering optimization ofsecurity versus transmission speed issues. These random numbers areactually indexes to a set of 64K universally a priori defined orthogonalpatterns which are well known to both the central network and arepermanently stored in memory in all of the point-of-sale readers. Aswill be seen, a would-be thief's knowledge of these patterns is of nouse.

[0385] Step seven then transmits the basic “OK to proceed” message tothe reader, 958, and also sends the 24 sets of 16 random index numbers.

[0386] Step eight has the reader receiving and storing all thesenumbers. Then the reader, using its local microprocessor and customdesigned high speed digital signal processing circuitry, steps throughall twenty four sets of numbers with the intention of deriving 24distinct floating point numbers which it will send back to the centralnetwork as a “one time key” against which the central network will checkthe veracity of the card's image. The reader does this by first addingtogether the sixteen patterns indexed by the sixteen random numbers of agiven set, and then performing a common dot product operation betweenthe resulting composite pattern and the scanned image of the card. Thedot product generates a single number (which for simplicity we can calla floating point number). The reader steps through all twenty four setsin like fashion, generating a unique string of twenty four floatingpoint numbers.

[0387] Step nine then has the reader transmitting these results back tothe central network.

[0388] Step ten then has the central network performing a check on thesereturned twenty four numbers, presumably doing its own exact samecalculations on the stored image of the card that the central networkhas in its own memory. The numbers sent by the reader can be“normalized,” meaning that the highest absolute value of the collectivetwenty four dot products can divided by itself (its unsigned value), sothat brightness scale issues are removed. The resulting match betweenthe returned values and the central network's calculated values willeither be well within given tolerances if the card is valid, and way offif the card is a phony or if the card is a crude reproduction.

[0389] Step eleven then has the central network sending word whether ornot the transaction was OK, and letting the customer know that they cango home with their purchased goods.

[0390] Step twelve then explicitly shows how the merchant's account iscredited with the transaction amount.

[0391] As already stated, the primary advantage of this plastic card isto significantly reduce fraud, which apparently is a large cost tocurrent systems. This system reduces the possibility of fraud only tothose cases where the physical card is either stolen or very carefullycopied. In both of these cases, there still remains the PIN security andthe user picture security (a known higher security than low wage clerksanalyzing signatures). Attempts to copy the card must be performedthrough “temporary theft” of the card, and require photo-quality copyingdevices, not simple magnetic card swipers. The system is founded upon amodern 24 hour highly linked data network. Illicit monitoring oftransactions does the monitoring party no use whether the transmissionsare encrypted or not.

[0392] It will be appreciated that the foregoing approach to increasingthe security of transactions involving credit and debit card systems isreadily extended to any photograph-based identification system.Moreover, the principles of the present technology may be applied todetect alteration of photo ID documents, and to generally enhance theconfidence and security of such systems. In this regard, reference ismade to FIG. 28, which depicts a photo-ID card or document 1000 whichmay be, for example, a passport, visa, permanent resident card (“greencard”), driver's license, credit card, government employeeidentification, or a private industry identification badge. Forconvenience, such photograph-based identification documents will becollectively referred to as photo ID documents.

[0393] The photo ID document includes a photograph 1010 that is attachedto the document 1000. Printed, human-readable information 1012 isincorporated in the document 1000, adjacent to the photograph 1010.Machine readable information, such as that known as “bar code” may alsobe included adjacent to the photograph.

[0394] Generally, the photo ID document is constructed so that tamperingwith the document (for example, swapping the original photograph withanother) should cause noticeable damage to the card. Nevertheless,skilled forgerers are able to either alter existing documents ormanufacture fraudulent photo ID documents in a manner that is extremelydifficult to detect.

[0395] As noted above, the present technology enhances the securityassociated with the use of photo ID documents by supplementing thephotographic image with encoded information (which information may ormay not be visually perceptible), thereby facilitating the correlationof the photographic image with other information concerning the person,such as the printed information 1012 appearing on the document 1000.

[0396] In one embodiment, the photograph 1010 may be produced from a rawdigital image to which is added a master snowy image as described abovein connection with FIGS. 22-24. The above-described central network andpoint-of-sale reading device (which device, in the present embodiment,may be considered as a point-of-entry or point-of-security photo IDreading device), would essentially carry out the same processing asdescribed with that embodiment, including the central network generationof unique numbers to serve as indices to a set of defined orthogonalpatterns, the associated dot product operation carried out by thereader, and the comparison with a similar operation carried out by thecentral network. If the numbers generated from the dot product operationcarried out by the reader and the central network match, in thisembodiment, the network sends the OK to the reader, indicating alegitimate or unaltered photo ID document.

[0397] In another embodiment, the photograph component 1010 of theidentification document 1000 may be digitized and processed so that thephotographic image that is incorporated into the photo ID document 1000corresponds to the “distributable signal” as defined above. In thisinstance, therefore, the photograph includes a composite, embedded codesignal, imperceptible to a viewer, but carrying an N-bit identificationcode. It will be appreciated that the identification code can beextracted from the photo using any of the decoding techniques describedabove, and employing either universal or custom codes, depending uponthe level of security sought.

[0398] It will be appreciated that the information encoded into thephotograph may correlate to, or be redundant with, the readableinformation 1012 appearing on the document. Accordingly, such a documentcould be authenticated by placing the photo ID document on a scanningsystem, such as would be available at a passport or visa control point.The local computer, which may be provided with the universal code forextracting the identification information, displays the extractedinformation on the local computer screen so that the operator is able toconfirm the correlation between the encoded information and the readableinformation 1012 carried on the document.

[0399] It will be appreciated that the information encoded with thephotograph need not necessarily correlate with other information on anidentification document. For example, the scanning system may need onlyto confirm the existence of the identification code so that the user maybe provided with a “go” or “no go” indication of whether the photographhas been tampered with. It will also be appreciated that the localcomputer, using an encrypted digital communications line, could send apacket of information to a central verification facility, whichthereafter returns an encrypted “go” or “no go” indication.

[0400] In another embodiment, it is contemplated that the identificationcode embedded in the photograph may be a robust digital image ofbiometric data, such as a fingerprint of the card bearer, which image,after scanning and display, may be employed for comparison with theactual fingerprint of the bearer in very high security access pointswhere on-the-spot fingerprint recognition systems (or retinal scans,etc.) are employed.

[0401] It will be appreciated that the information embedded in thephotograph need not be visually hidden or steganographically embedded.For example, the photograph incorporated into the identification cardmay be a composite of an image of the individual and one-, ortwo-dimensional bar codes. The bar code information would be subject toconventional optical scanning techniques (including internal crosschecks) so that the information derived from the code may be compared,for example, to the information printed on the identification document.

[0402] It is also contemplated that the photographs of ID documentscurrently in use may be processed so that information correlated to theindividual whose image appears in the photograph may be embedded. Inthis regard, the reader's attention is directed to the foregoing portionof this description entitled “Use in Printing, Paper, Documents,Plastic-Coated Identification Cards, and Other Material Where GlobalEmbedded Codes Can Be Imprinted,” wherein there is described numerousapproaches to modulation of physical media that may be treated as“signals” amenable to application of the present technology principles.

NETWORK LINKING METHOD USING INFORMATION EMBEDDED IN DATA OBJECTS THATHAVE INHERENT NOISE

[0403] The diagram of FIG. 27 illustrates the aspect of the technologythat provides a network linking method using information embedded indata objects that have inherent noise. In one sense, this aspect is anetwork navigation system and, more broadly, a massively distributedindexing system that embeds addresses and indices directly within dataobjects themselves. As noted, this aspect is particularly well-adaptedfor establishing hot links with pages presented on the World Wide Web(WWW). A given data object effectively contains both a graphicalrepresentation and embedded URL address.

[0404] As in previous embodiments, this embedding is carried out so thatthe added address information does not affect the core value of theobject so far as the creator and audience are concerned. As aconsequence of such embedding, only one class of data objects is presentrather than the two classes (data object and discrete header file) thatare attendant with traditional WWW links. The advantages of reducing ahot-linked data object to a single class were mentioned above, and areelaborated upon below.

[0405] In one embodiment of the technology, the World Wide Web is usedas a pre-existing hot link based network. The common apparatus of thissystem is networked computers and computer monitors displaying theresults of interactions when connected to the web. This embodiment ofthe technology contemplates steganographically embedding URL or otheraddress-type information directly into images, videos, audio, and otherforms of data objects that are presented to a web site visitor, andwhich have “gray scale” or “continuous tones” or “gradations” and,consequently, inherent noise. As noted above, there are a variety ofways to realize basic steganographic implementations, all of which couldbe employed in accordance with the present technology.

[0406] With particular reference to FIG. 27, images, quasi-continuoustone graphics, multimedia video and audio data are currently the basicbuilding blocks of many sites 1002, 1004 on the World Wide Web. Suchdata will be hereafter collectively referred to as creative data filesor data objects. For illustrative purposes, a continuous-tone graphicdata object 1006 (diamond ring with background) is depicted in FIG. 27.

[0407] Web site tools—both those that develop web sites 1008 and thosethat allow browsing them 1010—routinely deal with the various fileformats in which these data objects are packaged. It is already commonto distribute and disseminate these data objects 1006 as widely aspossible, often with the hope on a creator's part to sell the productsrepresented by the objects or to advertise creative services (e.g., anexemplary photograph, with an 800 phone number displayed within it,promoting a photographer's skills and service). Using the methods ofthis technology, individuals and organizations who create anddisseminate such data objects can embed an address link that leads rightback to their own node on a network, their own site on the WWW.

[0408] A user at one site 1004 needs merely to point and click at thedisplayed object 1006. The software 1010 identifies the object as a hotlink object. The software reads the URL address that is embedded withinthe object and routes the user to the linked web site 1002, just as ifthe user had used a conventional web link. That linked site 1002 is thehome page or network node of the creator of the object 1006, whichcreator may be a manufacturer. The user at the first site 1004 is thenpresented with, for example, an order form for purchasing the productrepresented by the object 1006.

[0409] It will be appreciated that the creators of objects 1006 havingembedded URL addresses or indices (which objects may be referred to as“hot objects”) and the manufacturers hoping to advertise their goods andservices can now spread their creative content like dandelion seeds inthe wind across the WWW, knowing that embedded within those seeds arelinks back to their own home page.

[0410] It is contemplated that the object 1006 may include a visibleicon 1012 (such as the exemplary “HO” abbreviation shown in FIG. 27)incorporated as part of the graphic. The icon or other subtle indiciawould apprise the user that the object is a hot object, carrying theembedded URL address or other information that is accessible via thesoftware 1010.

[0411] Any human-perceptible indicium (e.g., a short musical tone) canserve the purpose of apprising the user of the hot object. It iscontemplated, however, that no such indicium is required. A user'strial-and-error approach to clicking on a data object having no embeddedaddress will merely cause the software to look for, but not find, theURL address.

[0412] The automation process inherent in the use of this aspect of thetechnology is very advantageous. Web software and web site developmenttools simply need to recognize this new class of embedded hot links (hotobjects), operating on them in real time. Conventional hot links can bemodified and supplemented simply by “uploading” a hot object into a website repository, never requiring a web site programmer to do a thingother than basic monitoring of traffic.

[0413] A method of implementing the above described functions of thepresent technology generally involves the steps of (1) creating a set ofstandards by which URL addresses are steganographically embedded withinimages, video, audio, and other forms of data objects; and (2) designingweb site development tools and web software such that they recognizethis new type of data object (the hot object), the tools being designedsuch that when the objects are presented to a user and that user pointsand clicks on such an object, the user's software knows how to read ordecode the steganographic information and route the user to the decodedURL address.

[0414] The foregoing portions of this description detailed asteganographic implementation (see, generally, FIG. 2 and the textassociated therewith) that is readily adapted to implement the presenttechnology. In this regard, the otherwise conventional site developmenttool 1008 is enhanced to include, for example, the capability to encodea bit-mapped image file with an identification code (URL address, forexample) according to the present technology. In the present embodiment,it is contemplated that the commercial or transaction based hot objectsmay be steganographically embedded with URL addresses (or otherinformation) using any of the universal codes described above.

[0415] The foregoing portions of this description also detailed atechnique for reading or decoding steganographically embeddedinformation (see, generally, FIG. 3 and the text associated therewith)that is readily adapted to implement the present technology. In thisregard, the otherwise conventional user software 1010 is enhanced toinclude, for example, the capability to analyze encoded bit-mapped filesand extract the identification code (URL address, for example).

[0416] While an illustrative implementation for steganographicallyembedding information on a data object has been described, one ofordinary skill will appreciate that any one of the multitude ofavailable steganographic techniques may be employed to carry out thefunction of the present embodiment.

[0417] It will be appreciated that the present embodiment provides animmediate and common sense mechanism whereby some of the fundamentalbuilding blocks of the WWW, namely images and sound, can also become hotlinks to other web sites. Also, the programming of such hot objects canbecome fully automated merely through the distribution and availabilityof images and audio. No real web site programming is required. Thepresent embodiment provides for the commercial use of the WWW in such away that non-programmers can easily spread their message merely bycreating and distributing creative content (herein, hot objects). Asnoted, one can also transition web based hot links themselves from amore arcane text based interface to a more natural image basedinterface.

[0418] Encapsulated Hot Link File Format

[0419] As noted above, once steganographic methods of hot linknavigation take hold, then, as new file formats and transmissionprotocols develop, more traditional methods of “header-based”information attachment can enhance the basic approach built by asteganographic-based system. One way to begin extending thesteganographic based hot link method back into the more traditionalheader-based method is to define a new class of file format which couldeffectively become the standard class used in network navigationsystems. It will be seen that objects beyond images, audio and the likecan now become “hot objects”, including text files, indexed graphicfiles, computer programs, and the like.

[0420] The encapsulated hot link (EHL) file format simply is a smallshell placed around a large range of pre-existing file formats. The EHLheader information takes only the first N bytes of a file, followed by afull and exact file in any kind of industry standard format. The EHLsuper-header merely attaches the correct file type, and the URL addressor other index information associating that object to other nodes on anetwork or other databases on a network.

[0421] It is possible that the EHL format could be the method by whichthe steganographic methods are slowly replaced (but probably nevercompletely). The slowness pays homage to the idea that file formatstandards often take much longer to create, implement, and get everybodyto actually use (if at all). Again, the idea is that an EHL-like formatand system built around it would bootstrap onto a system setup based onsteganographic methods.

[0422] Self Extracting Web Objects

[0423] Generally speaking, three classes of data can besteganographically embedded in an object: a number (e.g. a serial oridentification number, encoded in binary), an alphanumeric message (e.g.a human readable name or telephone number, encoded in ASCII or a reducedbit code), or computer instructions (e.g. JAVA or HTML instructions).The embedded URLs and the like detailed above begin to explore thisthird class, but a more detailed exposition of the possibilities may behelpful.

[0424] Consider a typical web page, shown in FIG. 27A. It may be viewedas including three basic components: images (#1-#6), text, and layout.

[0425] Applicant's technology can be used to consolidate thisinformation into a self-extracting object, and regenerate the web pagefrom this object.

[0426] In accordance with this example, FIG. 27B shows the images of theFIG. 27A web page fitted together into a single RGB mosaiced image. Auser can perform this operation manually using existing image processingprograms, such as Adobe's Photoshop software, or the operation can beautomated by a suitable software program.

[0427] Between certain of the image tiles in the FIG. 27B mosaic areempty areas (shown by cross-hatching).

[0428] This mosaiced image is then steganographically encoded to embedthe layout instructions (e.g. HTML) and the web page text therein. Inthe empty areas the encoding gain can be maximized since there is noimage data to corrupt. The encoded, mosaiced image is then JPEGcompressed to form a self extracting web page object.

[0429] (JPEG compression is used in this example as a lingua franca ofimage representations. Another such candidate is the GIF file format.Such formats are supported by a variety of software tools and languages,making them well suited as “common carriers” of embedded information.Other image representations can of course be used.)

[0430] These objects can be exchanged as any other JPEG images. When theJPEG file is opened, a suitably programmed computer can detect thepresence of the embedded information and extract the layout data andtext. Among other information, the layout data specifies where theimages forming the mosaic are to be located in the final web page. Thecomputer can follow the embedded HTML instructions to recreate theoriginal web page, complete with graphics, text, and links to otherURLs.

[0431] If the self extracting web page object is viewed by aconventional JPEG viewer, it does not self-extract. However, the userwill see the logos and artwork associated with the web page (withnoise-like “grouting” between certain of the images). Artisans willrecognize that this is in stark contrast to viewing of other compresseddata objects (e.g. PKZIP files and self extracting text archives) whichtypically appear totally unintelligible unless fully extracted.

[0432] (The foregoing advantages can largely be achieved by placing theweb page text and layout instructions in a header file associated with aJPEG-compressed mosaiced image file. However, industry standardizationof the header formats needed to make such systems practical appearsdifficult, if not impossible.)

[0433] Palettes of Steganographically Encoded Images

[0434] Once web images with embedded URL information become widespread,such web images can be collected into “palettes” and presented to usersas high level navigation tools. Navigation is effected by clicking onsuch images (e.g. logos for different web pages) rather than clicking ontextual web page names. A suitably programmed computer can decode theembedded URL information from the selected image, and establish therequested connection.

[0435] In one embodiment, self-extraction of the above-described webpage objects automatically generates thumbnail images corresponding tothe extracted pages (e.g. representative logos), which are then storedin a subdirectory in the computer's file system dedicated to collectingsuch thumbnails. In each such thumbnail is embedded a URL, such as theURL of the extracted page or the URL of the site from which theself-extracting object was obtained. This subdirectory can be accessedto display a palette of navigational thumbnails for selection by theuser.

POTENTIAL USE OF THE TECHNOLOGY IN THE PROTECTION AND CONTROL OFSOFTWARE PROGRAMS

[0436] The illicit use, copying, and reselling of software programsrepresents a huge loss of revenues to the software industry at large.The prior art methods for attempting to mitigate this problem are verybroad and will not be discussed here. What will be discussed is how theprinciples of this technology might be brought to bear on this hugeproblem. It is entirely unclear whether the tools provided by thistechnology will have any economic advantage (all things considered) overthe existing countermeasures both in place and contemplated.

[0437] The state of technology over the last decade or more has made ita general necessity to deliver a full and complete copy of a softwareprogram in order for that program to function on a user's computer. Ineffect, $X were invested in creating a software program where X islarge, and the entire fruits of that development must be delivered inits entirety to a user in order for that user to gain value from thesoftware product. Fortunately this is generally compiled code, but thepoint is that this is a shaky distribution situation looked at in theabstract. The most mundane (and harmless in the minds of mostperpetrators) illicit copying and use of the program can be performedrather easily.

[0438] This disclosure offers, at first, an abstract approach which mayor may not prove to be economical in the broadest sense (where therecovered revenue to cost ratio would exceed that of most competingmethods, for example). The approach expands upon the methods andapproaches already laid out in the section on plastic credit and debitcards. The abstract concept begins by positing a “large set of uniquepatterns,” unique among themselves, unique to a given product, andunique to a given purchaser of that product. This set of patternseffectively contains thousands and even millions of absolutely unique“secret keys” to use the cryptology vernacular. Importantly anddistinctly, these keys are non-deterministic, that is, they do not arisefrom singular sub-1000 or sub-2000 bit keys such as with the RSA keybased systems. This large set of patterns is measured in kilobytes andMegabytes, and as mentioned, is non-deterministic in nature.Furthermore, still at the most abstract level, these patterns are fullycapable of being encrypted via standard techniques and analyzed withinthe encrypted domain, where the analysis is made on only a small portionof the large set of patterns, and that even in the worst case scenariowhere a would-be pirate is monitoring the step-by-step microcodeinstructions of a microprocessor, this gathered information wouldprovide no useful information to the would-be pirate. This latter pointis an important one when it comes to “implementation security” asopposed to “innate security” as will be briefly discussed below.

[0439] So what could be the differential properties of this type of keybased system as opposed to, for example, the RSA cryptology methodswhich are already well respected, relatively simple, etc. etc? Asmentioned earlier, this discussion is not going to attempt a commercialside-by-side analysis. Instead, we'll just focus on the differingproperties. The main distinguishing features fall out in theimplementation realm (the implementation security). One example is thatin single low-bit-number private key systems, the mere local use andre-use of a single private key is an inherently weak link in anencrypted transmission system. [“Encrypted transmission systems” arediscussed here in the sense that securing the paid-for use of softwareprograms will in this discussion require de facto encryptedcommunication between a user of the software and the “bank” which allowsthe user to use the program; it is encryption in the service ofelectronic financial transactions looked at in another light.] Would-behackers wishing to defeat so-called secure systems never attack thefundamental hard-wired security (the innate security) of the pristineusage of the methods, they attack the implementation of those methods,centered around human nature and human oversights. It is here, still inthe abstract, that the creation of a much larger key base, which isitself non-deterministic in nature, and which is more geared towardeffectively throw-away keys, begins to “idiot proof” the morehistorically vulnerable implementation of a given secure system. Thehuge set of keys is not even comprehensible to the average holder ofthose keys, and their use of those keys (i.e., the “implementation” ofthose keys) can randomly select keys, easily throw them out after atime, and can use them in a way that no “eavesdropper” will gain anyuseful information in the eavesdropping, especially when well within amillionth of the amount of time that an eavesdropper could “decipher” akey, its usefulness in the system would be long past.

[0440] Turning the abstract to the semi-concrete, one possible newapproach to securely delivering a software product to ONLY the bonafidepurchasers of that product is the following. In a mass economic sense,this new method is entirely founded upon a modest rate realtime digitalconnectivity (often, but not necessarily standard encrypted) between auser's computer network and the selling company's network. At firstglance this smells like trouble to any good marketing person, andindeed, this may throw the baby out with the bathwater if by trying torecover lost revenues, you lose more legitimate revenue along the way(all part of the bottom line analysis). This new method dictates that acompany selling a piece of software supplies to anyone who is willing totake it about 99.8% of its functional software for local storage on auser's network (for speed and minimizing transmission needs). This “freecore program” is entirely unfunctional and designed so that even thecraftiest hackers can't make use of it or “decompile it” in some sense.Legitimate activation and use of this program is performed purely on ainstruction-cycle-count basis and purely in a simple very low overheadcommunications basis between the user's network and the company'snetwork. A customer who wishes to use the product sends payment to thecompany via any of the dozens of good ways to do so. The customer issent, via common shipment methods, or via commonly secured encrypteddata channels, their “huge set of unique secret keys.” If we were tolook at this large set as if it were an image, it would look just likethe snowy images discussed over and over again in other parts of thisdisclosure. (Here, the “signature” is the image, rather than beingimperceptibly placed onto another image). The special nature of thislarge set is that it is what we might call “ridiculously unique” andcontains a large number of secret keys. (The “ridiculous” comes from thesimple math on the number of combinations that are possible with, say 1Megabyte of random bit values, equaling exactly the number that “allones” would give, thus 1 Megabyte being approximately 10 raised to the˜2,400,000 power, plenty of room for many people having many throwawaysecret keys). It is important to re-emphasize that the purchased entityis literally: productive use of the tool. The marketing of this wouldneed to be very liberal in its allotment of this productivity, sinceper-use payment schemes notoriously turn off users and can lower overallrevenues significantly.

[0441] This large set of secret keys is itself encrypted using standardencryption techniques. The basis for relatively higher “implementationsecurity” can now begin to manifest itself. Assume that the user nowwishes to use the software product. They fire up the free core, and thefree core program finds that the user has installed their large set ofunique encrypted keys. The core program calls the company network anddoes the usual handshaking. The company network, knowing the large setof keys belonging to that bonafide user, sends out a query on somesimple set of patterns, almost exactly the same way as described in thesection on the debit and credit cards. The query is such a small set ofthe whole, that the inner workings of the core program do not even needto decrypt the whole set of keys, only certain parts of the keys, thusno decrypted version of the keys ever exist, even within the machinecycles on the local computer itself. As can be seen, this does notrequire the “signatures within a picture” methods of the maindisclosure, instead, the many unique keys ARE the picture. The coreprogram interrogates the keys by performing certain dot products, thensends the dot products back to the company's network for verification.See FIG. 25 and the accompanying discussion for typical details on averification transaction. Generally encrypted verification is sent, andthe core program now “enables” itself to perform a certain amount ofinstructions, for example, allowing 100,000 characters being typed intoa word processing program (before another unique key needs to betransmitted to enable another 100,000). In this example, a purchaser mayhave bought the number of instructions which are typically used within aone year period by a single user of the word processor program. Thepurchaser of this product now has no incentive to “copy” the program andgive it to their friends and relatives.

[0442] All of the above is well and fine except for two simple problems.The first problem can be called “the cloning problem” and the second“the big brother problem.” The solutions to these two problems areintimately linked. The latter problem will ultimately become a purelysocial problem, with certain technical solutions as mere tools not ends.

[0443] The cloning problem is the following. It generally applies to amore sophisticated pirate of software rather than the currently common“friend gives their distribution CD to a friend” kind of piracy.Crafty-hacker “A” knows that if she performs a system-state clone of the“enabled” program in its entirety and installs this clone on anothermachine, then this second machine effectively doubles the value receivedfor the same money. Keeping this clone in digital storage, hacker “A”only needs to recall it and reinstall the clone after the first periodis run out, thus indefinitely using the program for a single payment, orshe can give the clone to their hacker friend “B” for a six-pack ofbeer. One good solution to this problem requires, again, a rather welldeveloped and low cost real time digital connectivity between user siteand company enabling network. This ubiquitous connectivity generallydoes not exist today but is fast growing through the Internet and thebasic growth in digital bandwidth. Part and parcel of the “enabling” isa negligible communications cost random auditing function wherein thefunctioning program routinely and irregularly performs handshakes andverifications with the company network. It does so, on average, during acycle which includes a rather small amount of productivity cycles of theprogram. The resulting average productivity cycle is in general muchless than the raw total cost of the cloning process of the overallenabled program. Thus, even if an enabled program is cloned, theusefulness of that instantaneous clone is highly limited, and it wouldbe much more cost effective to pay the asking price of the sellingcompany than to repeat the cloning process on such short time periods.Hackers could break this system for fun, but certainly not for profit.The flip side to this arrangement is that if a program “calls up” thecompany's network for a random audit, the allotted productivity countfor that user on that program is accounted for, and that in cases wherebonafide payment has not been received, the company network simplywithholds its verification and the program no longer functions. We'reback to where users have no incentive to “give this away” to friendsunless it is an explicit gift (which probably is quite appropriate ifthey have indeed paid for it: “do anything you like with it, you paidfor it”).

[0444] The second problem of “big brother” and the intuitivelymysterious “enabling” communications between a user's network and acompany's network would as mentioned be a social and perceptual problemthat should have all manner of potential real and imagined solutions.Even with the best and objectively unbeatable anti-big-brothersolutions, there will still be a hard-core conspiracy theory crowdclaiming it just ain't so. With this in mind, one potential solution isto set up a single program registry which is largely a public ornon-profit institution to handling and coordinating the realtimeverification networks. Such an entity would then have company clients aswell as user clients. An organization such as the Software PublishersAssociation, for example, may choose to lead such an effort.

[0445] Concluding this section, it should be re-emphasized that themethods here outlined require a highly connected distributed system, inother words, a more ubiquitous and inexpensive Internet than exists inmid 1995. Simple trend extrapolation would argue that this is not toofar off from 1995. The growth rate in raw digital communicationsbandwidth also argues that the above system might be more practical,sooner, than it might first appear. (The prospect of interactive TVbrings with it the promise of a fast network linking millions of sitesaround the world.)

USE OF CURRENT CRYPTOLOGY METHODS IN CONJUNCTION WITH THIS TECHNOLOGY

[0446] It should be briefly noted that certain implementations of theprinciples of this technology probably can make good use of currentcryptographic technologies. One case in point might be a system wherebygraphic artists and digital photographers perform realtime registrationof their photographs with the copyright office. It might be advantageousto send the master code signals, or some representative portion thereof,directly to a third party registry. In this case, a photographer wouldwant to know that their codes were being transmitted securely and notstolen along the way. In this case, certain common cryptographictransmission might be employed. Also, photographers or musicians, or anyusers of this technology, may want to have reliable time stampingservices which are becoming more common. Such a service could beadvantageously used in conjunction with the principles of thistechnology.

DETAILS ON THE LEGITIMATE AND ILLEGITIMATE DETECTION AND REMOVAL OFINVISIBLE SIGNATURES

[0447] In general, if a given entity can recognize the signatures hiddenwithin a given set of empirical data, that same entity can take steps toremove those signatures. In practice, the degree of difficulty betweenthe former condition and the latter condition can be made quite large,fortunately. On one extreme, one could posit a software program which isgenerally very difficult to “decompile” and which does recognitionfunctions on empirical data. This same bit of software could notgenerally be used to “strip” the signatures (without going to extremelengths). On the other hand, if a hacker goes to the trouble ofdiscovering and understanding the “public codes” used within some systemof data interchange, and that hacker knows how to recognize thesignatures, it would not be a large step for that hacker to read in agiven set of signed data and create a data set with the signatureseffectively removed. In this latter example, interestingly enough, therewould often be telltale statistics that signatures had been removed,statistics which will not be discussed here.

[0448] These and other such attempts to remove the signatures we canrefer to as illicit attempts. Current and past evolution of thecopyright laws have generally targeted such activity as coming undercriminal activity and have usually placed such language, along withpenalties and enforcement language, into the standing laws. Presumablyany and all practitioners of this signature technology will go tolengths to make sure that the same kind of a) creation, b) distribution,and c) use of these kinds of illicit removal of copyright protectionmechanisms are criminal offenses subject to enforcement and penalty. Onthe other hand, it is an object of this technology to point out thatthrough the recognition steps outlined in this disclosure, softwareprograms can be made such that the recognition of signatures can simplylead to their removal by inverting the known signatures by the amountequal to their found signal energy in the recognition process (i.e.,remove the size of the given code signal by exact amount found). Bypointing this out in this disclosure, it is clear that such software orhardware which performs this signature removal operation will not only(presumably) be criminal, but it will also be liable to infringement tothe extent that it is not properly licensed by the holders of the(presumably) patented technology.

[0449] The case of legitimate and normal recognition of the signaturesis straightforward. In one example, the public signatures coulddeliberately be made marginally visible (i.e. their intensity would bedeliberately high), and in this way a form of sending out “proof comps”can be accomplished. “Comps” and “proofs” have been used in thephotographic industry for quite some time, where a degraded image ispurposely sent out to prospective customers so that they might evaluateit but not be able to use it in a commercially meaningful way. In thecase of this technology, increasing the intensity of the public codescan serve as a way to “degrade” the commercial value intentionally, thenthrough hardware or software activated by paying a purchase price forthe material, the public signatures can be removed (and possiblyreplaced by a new invisible tracking code or signature, public and/orprivate.

MONITORING STATIONS AND MONITORING SERVICES

[0450] Ubiquitous and cost effective recognition of signatures is acentral issue to the broadest proliferation of the principles of thistechnology. Several sections of this disclosure deal with this topic invarious ways. This section focuses on the idea that entities such asmonitoring nodes, monitoring stations, and monitoring agencies can becreated as part of a systematic enforcement of the principles of thetechnology. In order for such entities to operate, they requireknowledge of the master codes, and they may require access to empiricaldata in its raw (unencrypted and untransformed) form. (Having access tooriginal unsigned empirical data helps in finer analyses but is notnecessary.)

[0451] Three basic forms of monitoring stations fall out directly fromthe admittedly arbitrarily defined classes of master codes: a privatemonitoring station, a semi-public, and a public. The distinctions aresimply based on the knowledge of the master codes. An example of thefully private monitoring station might be a large photographic stockhouse which decides to place certain basic patterns into its distributedmaterial which it knows that a truly crafty pirate could decipher andremove, but it thinks this likelihood is ridiculously small on aneconomic scale. This stock house hires a part-time person to come in andrandomly check high value ads and other photography in the public domainto search for these relatively easy to find base patterns, as well aschecking photographs that stock house staff members have “spotted” andthink it might be infringement material. The part time person cranksthrough a large stack of these potential infringement cases in a fewhours, and where the base patterns are found, now a more thoroughanalysis takes place to locate the original image and go through thefull process of unique identification as outlined in this disclosure.Two core economic values accrue to the stock house in doing this, valueswhich by definition will outweigh the costs of the monitoring serviceand the cost of the signing process itself. The first value is inletting their customers and the world know that they are signing theirmaterial and that the monitoring service is in place, backed up bywhatever statistics on the ability to catch infringers. This is thedeterrent value, which probably will be the largest value eventually. Ageneral pre-requisite to this first value is the actual recoveredroyalties derived from the monitoring effort and its building of a trackrecord for being formidable (enhancing the first value).

[0452] The semi-public monitoring stations and the public monitoringstations largely follow the same pattern, although in these systems itis possible to actually set up third party services which are givenknowledge of the master codes by clients, and the services merely fishthrough thousands and millions of “creative property” hunting for thecodes and reporting the results to the clients. ASCAP and BMI have“lower tech” approaches to this basic service.

[0453] A large coordinated monitoring service using the principles ofthis technology would classify its creative property supplier clientsinto two basic categories, those that provide master codes themselvesand wish the codes to remain secure and unpublished, and those that usegenerally public domain master codes (and hybrids of the two, ofcourse). The monitoring service would perform daily samplings (checks)of publicly available imagery, video, audio, etc., doing high levelpattern checks with a bank of supercomputers. Magazine ads and imageswould be scanned in for analysis, video grabbed off of commercialchannels would be digitized, audio would be sampled, public Internetsites randomly downloaded, etc. These basic data streams would then befed into an ever-churning monitoring program which randomly looks forpattern matches between its large bank of public and private codes, andthe data material it is checking. A small sub-set, which itself willprobably be a large set, will be flagged as potential match candidates,and these will be fed into a more refined checking system which beginsto attempt to identify which exact signatures may be present and toperform a more fine analysis on the given flagged material. Presumably asmall set would then fall out as flagged match material, owners of thatmaterial would be positively identified and a monitoring report would besent to the client so that they can verify that it was a legitimate saleof their material. The same two values of the private monitoring serviceoutlined above apply in this case as well. The monitoring service couldalso serve as a formal bully in cases of a found and proveninfringement, sending out letters to infringing parties witnessing thefound infringement and seeking inflated royalties so that the infringingparty might avoid the more costly alternative of going to court.

METHOD FOR EMBEDDING SUBLIMINAL REGISTRATION PATTERNS INTO IMAGES ANDOTHER SIGNALS

[0454] The very notion of reading embedded signatures involves theconcept of registration. The underlying master noise signal must beknown, and its relative position needs to be ascertained (registered) inorder to initiate the reading process itself (e.g. the reading of the1's and 0's of the N-bit identification word). When one has access tothe original or a thumbnail of the unsigned signal, this registrationprocess is quite straightforward. When one doesn't have access to thissignal, which is often the case in universal code applications of thistechnology, then different methods must be employed to accomplish thisregistration step. The example of pre-marked photographic film andpaper, where by definition there will never be an “unsigned” original,is a perfect case in point of the latter.

[0455] Many earlier sections have variously discussed this issue andpresented certain solutions. Notably, the section on “simple” universalcodes discusses one embodiment of a solution where a given master codesignal is known a priori, but its precise location (and indeed, itexistence or non-existence) is not known. That particular section wenton to give a specific example of how a very low level designed signalcan be embedded within a much larger signal, wherein this designedsignal is standardized so that detection equipment or reading processescan search for this standardized signal even though its exact locationis unknown. The brief section on 2D universal codes went on to point outthat this basic concept could be extended into 2 dimensions, or,effectively, into imagery and motion pictures. Also, the section onsymmetric patterns and noise patterns outlined yet another approach tothe two dimensional case, wherein the nuances associated with twodimensional scale and rotation were more explicitly addressed. Therein,the idea was not merely to determine the proper orientation and scale ofunderlying noise patterns, but to have information transmitted as well,e.g., the N rings for the N-bit identification word.

[0456] This section now attempts to isolate the sub-problem ofregistering embedded patterns for registration's sake. Once embeddedpatterns are registered, we can then look again at how this registrationcan serve broader needs. This section presents yet another technique forembedding patterns, a technique which can be referred to as “subliminaldigital graticules”. “Graticules”—other words such as fiducials orreticles or hash marks could just as well be used—conveys the idea ofcalibration marks used for the purposes of locating and/or measuringsomething. In this case, they are employed as low level patterns whichserve as a kind of gridding function. That gridding function itself canbe a carrier of 1 bit of information, as in the universal 1 second ofnoise (its absence or presence, copy me, don't copy me), or it cansimply find the orientation and scale of other information, such asembedded signatures, or it can simply orient an image or audio objectitself.

[0457]FIGS. 29 and 30 visually summarize two related methods whichillustrate applicant's subliminal digital graticules. As will bediscussed, the method of FIG. 29 may have slight practical advantagesover the method outlined in FIG. 30, but both methods effectivelydecompose the problem of finding the orientation of an image into aseries of steps which converge on a solution. The problem as a whole canbe simply stated as the following: given an arbitrary image wherein asubliminal digital graticule may have been stamped, then find the scale,rotation, and origin (offset) of the subliminal digital graticule.

[0458] The beginning point for subliminal graticules is in defining whatthey are. Simply put, they are visual patterns which are directly addedinto other images, or as the case may be, exposed onto photographic filmor paper. The classic double exposure is not a bad analogy, though indigital imaging this specific concept becomes rather stretched. Thesepatterns will generally be at a very low brightness level or exposurelevel, such that when they are combined with “normal” images andexposures, they will effectively be invisible (subliminal) and just asthe case with embedded signatures, they will by definition not interferewith the broad value of the images to which they are added.

[0459]FIGS. 29 and 30 define two classes of subliminal graticules, eachas represented in the spatial frequency domain, also known as the UVplane, 1000. Common two dimensional fourier transform algorithms cantransform any given image into its UV plane conjugate. To be precise,the depictions in FIGS. 29 and 30 are the magnitudes of the spatialfrequencies, whereas it is difficult to depict the phase and magnitudewhich exists at every point.

[0460]FIG. 29 shows the example of six spots in each quadrant along the45 degree lines, 1002. These are exaggerated in this figure, in thatthese spots would be difficult to discern by visual inspection of the UVplane image. A rough depiction of a “typical” power spectrum of anarbitrary image as also shown, 1004. This power spectrum is generally asunique as images are unique. The subliminal graticules are essentiallythese spots. In this example, there are six spatial frequencies combinedalong each of the two 45 degree axes. The magnitudes of the sixfrequencies can be the same or different (we'll touch upon thisrefinement later). Generally speaking, the phases of each are differentfrom the others, including the phases of one 45 degree axis relative tothe other. FIG. 31 depicts this graphically. The phases in this exampleare simply randomly placed between PI and -PI, 1008 and 1010. Only twoaxes are represented in FIG. 31—as opposed to the four separatequadrants, since the phase of the mirrored quadrants are simply PI/2 outof phase with their mirrored counterparts. If we turned up the intensityon this subliminal graticule, and we transformed the result into theimage domain, then we would see a weave-like cross-hatching pattern asrelated in the caption of FIG. 29. As stated, this weave-like patternwould be at a very low intensity when added to a given image. The exactfrequencies and phases of the spectral components utilized would bestored and standardized. These will become the “spectral signatures”that registration equipment and reading processes will seek to measure.

[0461] Briefly, FIG. 30 has a variation on this same general theme. FIG.30 lays out a different class of graticules in that the spectralsignature is a simple series of concentric rings rather than spots alongthe 45 degree axes. FIG. 32 then depicts a quasi-random phase profile asa function along a half-circle (the other half of the circle then beingPI/2 out of phase with the first half). These are simple examples andthere are a wide variety of variations possible in designing the phaseprofiles and the radii of the concentric rings. The transform of thistype of subliminal graticule is less of a “pattern” as with theweave-like graticule of FIG. 29, where it has more of a randomappearance like a snowy image.

[0462] The idea behind both types of graticules is the following: embeda unique pattern into an image which virtually always will be quitedistinct from the imagery into which it will be added, but which hascertain properties which facilitate fast location of the pattern, aswell as accuracy properties such that when the pattern is generallylocated, its precise location and orientation can be found to some highlevel of precision. A corollary to the above is to design the patternsuch that the pattern on average minimally interferes with the typicalimagery into which it will be added, and has maximum energy relative tothe visibility of the pattern.

[0463] Moving on to the gross summary of how the whole process works,the graticule type of FIG. 29 facilitates an image processing searchwhich begins by first locating the rotation axes of the subliminalgraticule, then locating the scale of the graticule, then determiningthe origin or offset. The last step here identifies which axes is whichof the two 45 degree axes by determining phase. Thus even if the imageis largely upside down, an accurate determination can be made. The firststep and the second step can both be accomplished using only the powerspectrum data, as opposed to the phase and magnitude. The phase andmagnitude signals can then be used to “fine tune” the search for thecorrect rotation angle and scale. The graticule of FIG. 30 switches thefirst two steps above, where the scale is found first, then therotation, followed by precise determination of the origin. Those skilledin the art will recognize that determining these outstanding parameters,along two axes, are sufficient to fully register an image. The“engineering optimization challenge” is to maximize the uniqueness andbrightness of the patterns relative to their visibility, whileminimizing the computational overhead in reaching some specified levelof accuracy and precision in registration. In the case of exposingphotographic film and paper, clearly an additional engineering challengeis the outlining of economic steps to get the patterns exposed onto thefilm and paper in the first place, a challenge which has been addressedin previous sections.

[0464] The problem and solution as above defined is what was meant byregistration for registration's sake. It should be noted that there wasno mention made of making some kind of value judgement on whether or nota graticule is indeed being found or not. Clearly, the above steps couldbe applied to images which do not in fact have graticules inside them,the measurements then simply chasing noise. Sympathy needs to beextended to the engineer who is assigned the task of setting “detectionthresholds” for these types of patterns, or any others, amidst theincredibly broad range of imagery and environmental conditions in whichthe patterns must be sought and verified. [Ironically, this is where thepure universal one second of noise stood in a previous section, and thatwas why it was appropriate to go beyond merely detecting or notdetecting this singular signal, i.e. adding additional informationplanes]. Herein is where some real beauty shows up: in the combinationof the subliminal graticules with the now-registered embedded signaturesdescribed in other parts of this disclosure. Specifically, once a“candidate registration” is found—paying due homage to the idea that onemay be chasing noise—then the next logical step is to perform a readingprocess for, e.g., a 64 bit universal code signature. As furtherexample, we can imagine that 44 bits of the 64 bit identification wordare assigned as an index of registered users—serial numbers if you will.The remaining 20 bits are reserved as a hash code—as is well known inencryption arts—on the 44 bit identification code thus found. Thus, inone swoop, the 20 bits serve as the “yes, I have a registered image” or“no, I don't” answer. More importantly, perhaps, this allows for asystem which can allow for maximum flexibility in precisely defining thelevels of “false positives” in any given automated identificationsystem. Threshold based detection will always be at the mercy of aplethora of conditions and situations, ultimately resting on arbitrarydecisions. Give me N coin flips any day.

[0465] Back on point, these graticule patterns must first be added to animage, or exposed onto a piece of film. An exemplary program reads in anarbitrarily sized digital image and adds a specified graticule to thedigital image to produce an output image. In the case of film, thegraticule pattern would be physically exposed onto the film eitherbefore, during, or after exposure of the primary image. All of thesemethods have wide variations in how they might be accomplished.

[0466] The searching and registering of subliminal graticules is themore interesting and involved process. This section will first describethe elements of this process, culminating in the generalized flow chartof FIG. 37.

[0467]FIG. 33 depicts the first major “search” step in the registrationprocess for graticules of the type in FIG. 29. A suspect image (or ascan of a suspect photograph) is first transformed in its fourierrepresentation using well known 2D FFT routines. The input image maylook like the one in FIG. 36, upper left image. FIG. 33 conceptuallyrepresents the case where the image and hence the graticules have notbeen rotated, though the following process fully copes with rotationissues. After the suspect image has been transformed, the power spectrumof the transform is then calculated, being simply the square root of theaddition of the two squared moduli. it is also a good idea to perform amild low pass filter operation, such as a 3×3 blur filter, on theresulting power spectrum data, so that later search steps don't needincredibly fine spaced steps. Then the candidate rotation angles from 0through 90 degrees (or 0 to PI/2 in radian) are stepped through. Alongany given angle, two resultant vectors are calculated, the first is thesimple addition of power spectrum values at a given radius along thefour lines emanating from the origin in each quadrant. The second vectoris the moving average of the first vector. Then, a normalized powerprofile is calculated as depicted in both 1022 and 1024, the differencebeing that one plot is along an angle which does not align with thesubliminal graticules, and the other plot does align. The normalizationstipulates that the first vector is the numerator and the second vectoris the denominator in the resultant vector. As can be seen in FIG. 33,1022 and 1024, a series of peaks (which should be “six” instead of“five” as is drawn) develops when the angle aligns along its properdirection. Detection of these peaks can be effected by setting somethreshold on the normalized values, and integrating their total alongthe whole radial line. A plot, 1026, from 0 to 90 degrees is depicted inthe bottom of FIG. 33, showing that the angle 45 degrees contains themost energy. In practice, this signal is often much lower than thatdepicted in this bottom figure, and instead of picking the highest valueas the “found rotation angle,” one can simply find the top few candidateangles and submit these candidates to the next stages in the process ofdetermining the registration. It can be appreciated by those practicedin the art that the foregoing was simply a known signal detectionscheme, and that there are dozens of such schemes that can ultimately becreated or borrowed. The simple requirement of the first stage processis to whittle down the candidate rotation angles to just a few, whereinmore refined searches can then take over.

[0468]FIG. 34 essentially outlines the same type of gross searching inthe power spectral domain. Here instead we first search for the grossscale of the concentric rings, stepping from a small scale through alarge scale, rather than the rotation angle. The graph depicted in 1032is the same normalized vector as in 1022 and 1024, but now the vectorvalues are plotted as a function of angle around a semi-circle. Themoving average denominator still needs to be calculated in the radialdirection, rather than the tangential direction. As can be seen, asimilar “peaking” in the normalized signal occurs when the scannedcircle coincides with a graticule circle, giving rise to the plot 1040.The scale can then be found on the bottom plot by matching the knowncharacteristics of the concentric rings (i.e. their radii) with theprofile in 1040.

[0469]FIG. 35 depicts the second primary step in registering subliminalgraticules of the type in FIG. 29. Once we have found a few rotationcandidates from the methods of FIG. 33, we then take the plots of thecandidate angles of the type of 1022 and 1024 and perform what theinventor refers to as a “scaled kernel” matched filtering operation onthose vectors. The scaled kernel refers to the fact that the kernel inthis case is a known non-harmonic relationship of frequencies,represented as the lines with x's at the top in 1042 and 1044, and thatthe scale of these frequencies is swept through some pre-determinedrange, such as 25% to 400% of some expected scale at 100%. The matchedfilter operation simply adds the resultant multiplied values of thescaled frequencies and their plot counterparts. Those practiced in theart will recognize the similarity of this operation with the very wellknown matched filter operation. The resulting plot of the matched filteroperation will look something like 1046 at the bottom of FIG. 35. Eachcandidate angle from the first step will generate its own such plot, andat this point the highest value of all of the plots will become ourcandidate scale, and the angle corresponding to the highest value willbecome our primary candidate rotation angle. Likewise for graticules ofthe type in FIG. 30, a similar “scaled-kernel” matched filteringoperation is performed on the plot 1040 of FIG. 34. This generallyprovides for a single candidate scale factor. Then, using the storedphase plots 1012, 1014 and 1016 of FIG. 32, a more traditional matchedfiltering operation is applied between these stored plots (as kernels),and the measured phase profiles along the half-circles at the previouslyfound scale.

[0470] The last step in registering graticules of the type in FIG. 29 isto perform a garden variety matched filter between the known (eitherspectral or spatial) profile of the graticule with the suspect image.Since both the rotation, scale and orientation are now known fromprevious steps, this matched filtering operation is straightforward. Ifthe accuracies and precision of preceding steps have not exceeded designspecifications in the process, then a simple micro-search can beperformed in the small neighborhood about the two parameters scale androtation, a matched filter operation performed, and the highest valuefound will determine a “fine tuned” scale and rotation. In this way, thescale and rotation can be found to within the degree set by the noiseand cross-talk of the suspect image itself. Likewise, once the scale androtation of the graticules of the type in FIG. 30 are found, then astraightforward matched filter operation can complete the registrationprocess, and similar “fine tuning” can be applied.

[0471] Moving on to a variant of the use of the graticules of the typein FIG. 29, FIG. 36 presents the possibility for finding the subliminalgraticules without the need for performing a computationally expensive 2dimensional FFT (fast fourier transform). In situations wherecomputational overhead is a major issue, then the search problem can bereduced to a series of one-dimensional steps. FIG. 36 broadly depictshow to do this. The figure at the top left is an arbitrary image inwhich the graticules of the type of FIG. 29 have been embedded. Startingat angle 0, and finishing with an angle just below 180 degrees, andstepping by, for example 5 degrees, the grey values along the depictedcolumns can be simply added to create a resulting column-integratedscan, 1058. The figure in the top right, 1052, depicts one of the manyangles at which this will be performed. This column-integrated scan thenis transformed into its fourier representation using the lesscomputationally expensive 1 dimensional FFT. This is then turned into amagnitude or “power” plot (the two are different), and a similarnormalized vector version created just like 1022 and 1024 in FIG. 33.The difference now is that as the angle approaches the proper angles ofthe graticules, slowly the tell-tale peaks begin to appear in the1024-like plots, but they generally show up at higher frequencies thanexpected for a given scale, since we are generally slightly off on ourrotation. It remains to find the angle which maximizes the peak signals,thus zooming in on the proper rotation. Once the proper rotation isfound, then the scaled kernel matched filter process can be applied,followed by traditional matched filtering, all as previously described.Again, the sole idea of the “short-cut” of FIG. 36 is to greatly reducethe computational overhead in using the graticules of the type in FIG.29. The inventor has not reduced this method of FIG. 36 to practice andcurrently has no data on precisely how much computational savings, ifany, will be realized. These efforts will be part of applicationspecific development of the method.

[0472]FIG. 37 simply summarizes, in order of major process steps, themethods revolving around the graticules of the type in FIG. 29.

[0473] In another variant embodiment, the graticule energy is notconcentrated around the 45 degree angles in the spatial frequencydomain. (Some compression algorithms, such as JPEG, tend to particularlyattenuate image energy at this orientation.) Instead, the energy is morewidely spatially spread. FIG. 29A shows one such distribution. Thefrequencies near the axes, and near the origin are generally avoided,since this is where the image energy is most likely concentrated.

[0474] Detection of this energy in a suspect image again relies ontechniques like that reviewed above. However, instead of firstidentifying the axes, then the rotation, and then the scale, a moreglobal pattern matching procedure is performed in which all aredetermined in a brute force effort. Those skilled in the art willrecognize that the Fourier-Mellin transform is well suited for use insuch pattern matching problems.

[0475] The foregoing principles find application, for example, inphoto-duplication kiosks. Such devices typically include a lens forimaging a customer-provided original (e.g. a photographic print or film)onto an opto-electronic detector, and a print-writing device forexposing and developing an emulsion substrate (again photographic paperor film) in accordance with the image data gathered by the detector. Thedetails of such devices are well known to those skilled in the art, andare not belabored here.

[0476] In such systems, a memory stores data from the detector, and aprocessor (e.g. a Pentium microprocessor with associated supportcomponents) can be used to process the memory data to detect thepresence of copyright data steganographically encoded therein. If suchdata is detected, the print-writing is interrupted.

[0477] To avoid defeat of the system by manual rotation of the originalimage off-axis, the processor desirably implements the above-describedtechnique to effect automatic registration of the original,notwithstanding scale, rotation, and origin offset factors. If desired,a digital signal processing board can be employed to offload certain ofthe FFT processing from the main (e.g. Pentium) processor. After arotated/scaled image is registered, detection of any steganographicallyencoded copyright notice is straightforward and assures the machine willnot be used in violation of a photographer's copyright.

[0478] While the techniques disclosed above have make use of applicant'spreferred steganographic encoding methods, the principles thereof aremore widely applicable and can be used in many instances in whichautomatic registration of an image is to be effected.

USE OF EMBEDDED SIGNATURES IN VIDEO, WHEREIN A VIDEO DATA STREAMEFFECTIVELY SERVES AS A HIGH-SPEED ONE WAY MODEM

[0479] Through use of the universal coding system outlined in earliersections, and through use of master snowy frames which change in asimple fashion frame to frame, a simple receiver can be designed suchthat it has pre-knowledge of the changes in the master snowy frames andcan therefore read a changing N-bit message word frame by frame (orI-frame by I-frame as the case may be in MPEG video). In this way, amotion picture sequence can be used as a high speed one-way informationchannel, much like a one-way modem. Consider, for example, a frame ofvideo data with N scan lines which is steganographically encoded toeffect the transmission of an N-bit message. If there are 484 scan linesin a frame (N), and frames change 30 times a second, an informationchannel with a capacity comparable to a 14.4 kilobaud modem is achieved.

[0480] In actual practice, a data rate substantially in excess of N bitsper frame can usually be achieved, yielding transmission rates nearerthat of ISDN circuits.

FRAUD PREVENTION IN WIRELESS COMMUNICATIONS

[0481] In the cellular telephone industry, hundreds of millions ofdollars of revenue is lost each year through theft of services. Whilesome services are lost due to physical theft of cellular telephones, themore pernicious threat is posed by cellular telephone hackers.

[0482] Cellular telephone hackers employ various electronic devices tomimic the identification signals produced by an authorized cellulartelephone. (These signals are sometimes called authorization signals,verification numbers, signature data, etc.) Often, the hacker learns ofthese signals by eavesdropping on authorized cellular telephonesubscribers and recording the data exchanged with the cell cite. Byartful use of this data, the hacker can impersonate an authorizedsubscriber and dupe the carrier into completing pirate calls.

[0483] In the prior art, identification signals are segregated from thevoice signals. Most commonly, they are temporally separated, e.g.transmitted in a burst at the time of call origination. Voice datapasses through the channel only after a verification operation has takenplace on this identification data. (Identification data is also commonlyincluded in data packets sent during the transmission.) Another approachis to spectrally separate the identification, e.g. in a spectral subbandoutside that allocated to the voice data.

[0484] Other fraud-deterrent schemes have also been employed. One classof techniques monitors characteristics of a cellular telephone's RFsignal to identify the originating phone. Another class of techniquesuses handshaking protocols, wherein some of the data returned by thecellular telephone is based on an algorithm (e.g. hashing) applied torandom data sent thereto.

[0485] Combinations of the foregoing approaches are also sometimesemployed.

[0486] U.S. Pat. Nos. 5,465,387, 5,454,027, 5,420,910, 5,448,760,5,335,278, 5,345,595, 5,144,649, 5,204,902, 5,153,919 and 5,388,212detail various cellular telephone systems, and fraud deterrencetechniques used therein.

[0487] As the sophistication of fraud deterrence systems increases, sodoes the sophistication of cellular telephone hackers. Ultimately,hackers have the upper hand since they recognize that all prior artsystems are vulnerable to the same weakness: the identification is basedon some attribute of the cellular telephone transmission outside thevoice data. Since this attribute is segregated from the voice data, suchsystems will always be susceptible to pirates who electronically “patch”their voice into a composite electronic signal having the attribute(s)necessary to defeat the fraud deterrence system.

[0488] To overcome this failing, preferred embodiments of this aspect ofthe present technology steganographically encode the voice signal withidentification data, resulting in “in-band” signalling (in-band bothtemporally and spectrally). This approach allows the carrier to monitorthe user's voice signal and decode the identification data therefrom.

[0489] In one such form of the technology, some or all of theidentification data used in the prior art (e.g. data transmitted at callorigination) is repeatedly steganographically encoded in the user'svoice signal as well. The carrier can thus periodically or aperiodicallycheck the identification data accompanying the voice data with that sentat call origination to ensure they match. If they do not, the call isidentified as being hacked and steps for remediation can be instigatedsuch as interrupting the call.

[0490] In another form of the technology, a randomly selected one ofseveral possible messages is repeatedly steganographically encoded onthe subscriber's voice. An index sent to the cellular carrier at callset-up identifies which message to expect. If the messagesteganographically decoded by the cellular carrier from the subscriber'svoice does not match that expected, the call is identified asfraudulent.

[0491] In a preferred form of this aspect of the technology, thesteganographic encoding relies on a pseudo random data signal totransform the message or identification data into a low level noise-likesignal superimposed on the subscriber's digitized voice signal. Thispseudo random data signal is known, or knowable, to both thesubscriber's telephone (for encoding) and to the cellular carrier (fordecoding). Many such embodiments rely on a deterministic pseudo randomnumber generator seeded with a datum known to both the telephone and thecarrier. In simple embodiments this seed can remain constant from onecall to the next (e.g. a telephone ID number). In more complexembodiments, a pseudo-one-time pad system may be used, wherein a newseed is used for each session (i.e. telephone call). In a hybrid system,the telephone and cellular carrier each have a reference noise key (e.g.10,000 bits) from which the telephone selects a field of bits, such as50 bits beginning at a randomly selected offset, and each uses thisexcerpt as the seed to generate the pseudo random data for encoding.Data sent from the telephone to the carrier (e.g. the offset) duringcall set-up allows the carrier to reconstruct the same pseudo randomdata for use in decoding. Yet further improvements can be derived byborrowing basic techniques from the art of cryptographic communicationsand applying them to the steganographically encoded signal detailed inthis disclosure.

[0492] Details of applicant's preferred techniques for steganographicencoding/decoding with a pseudo random data stream are more particularlydetailed in the previous portions of this specification, but the presenttechnology is not limited to use with such techniques.

[0493] The reader is presumed to be familiar with cellularcommunications technologies. Accordingly, details known from prior artin this field aren't belabored herein.

[0494] Referring to FIG. 38, an illustrative cellular system includes atelephone 2010, a cell site 2012, and a central office 2014.

[0495] Conceptually, the telephone may be viewed as including amicrophone 2016, an A/D converter 2018, a data formatter 2020, amodulator 2022, an RF section 2024, an antenna 2026, a demodulator 2028,a data unformatter 2030, a D/A converter 2032, and a speaker 2034.

[0496] In operation, a subscriber's voice is picked up by the microphone2016 and converted to digital form by the A/D converter 2018. The dataformatter 2020 puts the digitized voice into packet form, addingsynchronization and control bits thereto. The modulator 2022 convertsthis digital data stream into an analog signal whose phase and/oramplitude properties change in accordance with the data being modulated.The RF section 2024 commonly translates this time-varying signal to oneor more intermediate frequencies, and finally to a UHF transmissionfrequency. The RF section thereafter amplifies it and provides theresulting signal to the antenna 2026 for broadcast to the cell site2012.

[0497] The process works in reverse when receiving. A broadcast from thecell cite is received through the antenna 2026. RF section 2024amplifies and translates the received signal to a different frequencyfor demodulation. Demodulator 2028 processes the amplitude and/or phasevariations of the signal provided by the RF section to produce a digitaldata stream corresponding thereto. The data unformatter 2030 segregatesthe voice data from the associated synchronization/control data, andpasses the voice data to the D/A converter for conversion into analogform. The output from the D/A converter drives the speaker 2034, throughwhich the subscriber hears the other party's voice.

[0498] The cell site 2012 receives broadcasts from a plurality oftelephones 2010, and relays the data received to the central office2014. Likewise, the cell site 2012 receives outgoing data from thecentral office and broadcasts same to the telephones.

[0499] The central office 2014 performs a variety of operations,including call authentication, switching, and cell hand-off.

[0500] (In some systems, the functional division between the cell siteand the central station is different than that outlined above. Indeed,in some systems, all of this functionality is provided at a singlesite.)

[0501] In an exemplary embodiment of this aspect of the technology, eachtelephone 2010 additionally includes a steganographic encoder 2036.Likewise, each cell site 2012 includes a steganographic decoder 2038.The encoder operates to hide an auxiliary data signal among the signalsrepresenting the subscriber's voice. The decoder performs the reciprocalfunction, discerning the auxiliary data signal from the encoded voicesignal. The auxiliary signal serves to verify the legitimacy of thecall.

[0502] An exemplary steganographic encoder 2036 is shown in FIG. 39.

[0503] The illustrated encoder 2036 operates on digitized voice data,auxiliary data, and pseudo-random noise (PRN) data. The digitized voicedata is applied at a port 2040 and is provided, e.g., from A/D converter2018. The digitized voice may comprise 8-bit samples. The auxiliary datais applied at a port 2042 and comprises, in one form of the technology,a stream of binary data uniquely identifying the telephone 2010. (Theauxiliary data may additionally include administrative data of the sortconventionally exchanged with a cell site at call set-up.) Thepseudo-random noise data is applied at a port 2044 and can be, e.g., asignal that randomly alternates between “−1” and “1” values. (More andmore cellular phones are incorporating spread spectrum capablecircuitry, and this pseudo-random noise signal and other aspects of thistechnology can often “piggy-back” or share the circuitry which isalready being applied in the basic operation of a cellular unit).

[0504] For expository convenience, it is assumed that all three datasignals applied to the encoder 2036 are clocked at a common rate,although this is not necessary in practice.

[0505] In operation, the auxiliary data and PRN data streams are appliedto the two inputs of a logic circuit 2046. The output of circuit 2046switches between −1 and +1 in accordance with the following table: AUXPRN OUTPUT 0 −1 1 0 1 −1 1 −1 −1 1 1 1

[0506] (If the auxiliary data signal is conceptualized as switchingbetween −1 and 1, instead of 0 and 1, it will be seen that circuit 2046operates as a one-bit multiplier.)

[0507] The output from gate 2046 is thus a bipolar data stream whoseinstantaneous value changes randomly in accordance with thecorresponding values of the auxiliary data and the PRN data. It may beregarded as noise. However, it has the auxiliary data encoded therein.The auxiliary data can be extracted if the corresponding PRN data isknown.

[0508] The noise-like signal from gate 2046 is applied to the input of ascaler circuit 2048. Scaler circuit scales (e.g. multiplies) this inputsignal by a factor set by a gain control circuit 2050. In theillustrated embodiment, this factor can range between 0 and 15. Theoutput from scaler circuit 2048 can thus be represented as a five-bitdata word (four bits, plus a sign bit) which changes each clock cycle,in accordance with the auxiliary and PRN data, and the scale factor. Theoutput from the scaler circuit may be regarded as “scaled noise data”(but again it is “noise” from which the auxiliary data can be recovered,given the PRN data).

[0509] The scaled noise data is summed with the digitized voice data bya summer 2051 to provide the encoded output signal (e.g. binarily addedon a sample by sample basis). This output signal is a composite signalrepresenting both the digitized voice data and the auxiliary data.

[0510] The gain control circuit 2050 controls the magnitude of the addedscaled noise data so its addition to the digitized voice data does notnoticeably degrade the voice data when converted to analog form andheard by a subscriber. The gain control circuit can operate in a varietyof ways.

[0511] One is a logarithmic scaling function. Thus, for example, voicedata samples having decimal values of 0, 1 or 2 may be correspond toscale factors of unity, or even zero, whereas voice data samples havingvalues in excess of 200 may correspond to scale factors of 15. Generallyspeaking, the scale factors and the voice data values correspond by asquare root relation. That is, a four-fold increase in a value of thevoice data corresponds to approximately a two-fold increase in a valueof the scaling factor associated therewith. Another scaling functionwould be linear as derived from the average power of the voice signal.

[0512] (The parenthetical reference to zero as a scaling factor alludesto cases, e.g., in which the digitized voice signal sample isessentially devoid of information content.)

[0513] More satisfactory than basing the instantaneous scaling factor ona single voice data sample, is to base the scaling factor on thedynamics of several samples. That is, a stream of digitized voice datawhich is changing rapidly can camouflage relatively more auxiliary datathan a stream of digitized voice data which is changing slowly.Accordingly, the gain control circuit 2050 can be made responsive to thefirst, or preferably the second- or higher-order derivative of the voicedata in setting the scaling factor.

[0514] In still other embodiments, the gain control block 2050 andscaler 2048 can be omitted entirely.

[0515] (Those skilled in the art will recognize the potential for “railerrors” in the foregoing systems. For example, if the digitized voicedata consists of 8-bit samples, and the samples span the entire rangefrom 0 to 255 (decimal), then the addition or subtraction of scalednoise to/from the input signal may produce output signals that cannot berepresented by 8 bits (e.g. −2, or 257). A number of well-understoodtechniques exist to rectify this situation, some of them proactive andsome of them reactive. Among these known techniques are: specifying thatthe digitized voice data shall not have samples in the range of 0-4 or241-255, thereby safely permitting combination with the scaled noisesignal; and including provision for detecting and adaptively modifyingdigitized voice samples that would otherwise cause rail errors.)

[0516] Returning to the telephone 2010, an encoder 2036 like thatdetailed above is desirably interposed between the A/D converter 2018and the data formatter 2020, thereby serving to steganographicallyencode all voice transmissions with the auxiliary data. Moreover, thecircuitry or software controlling operation of the telephone is arrangedso that the auxiliary data is encoded repeatedly. That is, when all bitsof the auxiliary data have been encoded, a pointer loops back and causesthe auxiliary data to be applied to the encoder 2036 anew. (Theauxiliary data may be stored at a known address in RAM memory for easeof reference.)

[0517] It will be recognized that the auxiliary data in the illustratedembodiment is transmitted at a rate one-eighth that of the voice data.That is, for every 8-bit sample of voice data, scaled noise datacorresponding to a single bit of the auxiliary data is sent. Thus, ifvoice samples are sent at a rate of 4800 samples/second, auxiliary datacan be sent at a rate of 4800 bits/second. If the auxiliary data iscomprised of 8-bit symbols, auxiliary data can be conveyed at a rate of600 symbols/second. If the auxiliary data consists of a string of even60 symbols, each second of voice conveys the auxiliary data ten times.(Significantly higher auxiliary data rates can be achieved by resortingto more efficient coding techniques, such as limited-symbol codes (e.g.5- or 6-bit codes), Huffman coding, etc.) This highly redundanttransmission of the auxiliary data permits lower amplitude scaled noisedata to be used while still providing sufficient signal-to-noiseheadroom to assure reliable decoding—even in the relatively noisyenvironment associated with radio transmissions.

[0518] Turning now to FIG. 40, each cell site 2012 has a steganographicdecoder 2038 by which it can analyze the composite data signal broadcastby the telephone 2010 to discern and separate the auxiliary data anddigitized voice data therefrom. (The decoder desirably works onunformatted data (i.e. data with the packet overhead, control andadministrative bits removed; this is not shown for clarity ofillustration).

[0519] The decoding of an unknown embedded signal (i.e. the encodedauxiliary signal) from an unknown voice signal is best done by some formof statistical analysis of the composite data signal. The techniquestherefor discussed above are equally applicable here. For example, theentropy-based approach can be utilized. In this case, the auxiliary datarepeats every 480 bits (instead of every 8). As above, the entropy-baseddecoding process treats every 480th sample of the composite signal inlike fashion. In particular, the process begins by adding to the 1st,481st, 861st, etc. samples of the composite data signal the PRN datawith which these samples were encoded. (That is, a set of sparse PRNdata is added: the original PRN set, with all but every 480th datumzeroed out.) The localized entropy of the resulting signal around thesepoints (i.e. the composite data signal with every 480th sample modified)is then computed.

[0520] The foregoing step is then repeated, this time subtracting thePRN data corresponding thereto from the 1st, 481st, 961st, etc.composite data samples.

[0521] One of these two operations will counteract (e.g. undo) theencoding process and reduce the resulting signal's entropy; the otherwill aggravate it. If adding the sparse PRN data to the composite datareduces its entropy, then this data must earlier have been subtractedfrom the original voice signal. This indicates that the correspondingbit of the auxiliary data signal was a “0” when these samples wereencoded. (A “0” at the auxiliary data input of logic circuit 46 causedit to produce an inverted version of the corresponding PRN datum as itsoutput datum, resulting in subtraction of the corresponding PRN datumfrom the voice signal.)

[0522] Conversely, if subtracting the sparse PRN data from the compositedata reduces its entropy, then the encoding process must have earlieradded this noise. This indicates that the value of the auxiliary databit was a “1” when samples 1, 481, 961, etc., were encoded.

[0523] By noting in which case entropy is lower by (a) adding or (b)subtracting a sparse set of PRN data to/from the composite data, it canbe determined whether the first bit of the auxiliary data is (a) a “0”,or (b) a “1.” (In real life applications, in the presence of variousdistorting phenomena, the composite signal may be sufficiently corruptedso that neither adding nor subtracting the sparse PRN data actuallyreduces entropy. Instead, both operations will increase entropy. In thiscase, the “correct” operation can be discerned by observing whichoperation increases the entropy less.)

[0524] The foregoing operations can then be conducted for the group ofspaced samples of the composite data beginning with the second sample(i.e. 2, 482, 962, . . . ). The entropy of the resulting signalsindicate whether the second bit of the auxiliary data signal is a “0” ora “1.” Likewise with the following 478 groups of spaced samples in thecomposite signal, until all 480 bits of the code word have beendiscerned.

[0525] As discussed above, correlation between the composite data signaland the PRN data can also be used as a statistical detection technique.Such operations are facilitated in the present context since theauxiliary data whose encoded representation is sought, is known, atleast in large part, a priori. (In one form of the technology, theauxiliary data is based on the authentication data exchanged at callset-up, which the cellular system has already received and logged; inanother form (detailed below), the auxiliary data comprises apredetermined message.) Thus, the problem can be reduced to determiningwhether an expected signal is present or not (rather than looking for anentirely unknown signal). Moreover, data formatter 2020 breaks thecomposite data into frames of known length. (In a known GSMimplementation, voice data is sent in time slots which convey 114 databits each.) By padding the auxiliary data as necessary, each repetitionof the auxiliary data can be made to start, e.g., at the beginning ofsuch a frame of data. This, too, simplifies the correlationdeterminations, since 113 of every 114 possible bit alignments can beignored (facilitating decoding even if none of the auxiliary data isknown a priori).

[0526] Again, this wireless fraud detection poses the now-familiarproblem of detecting known signals in noise, and the approachesdiscussed earlier are equally applicable here.

[0527] Where, as here, the location of the auxiliary signal is known apriori (or more accurately, known to fall within one of a few discretelocations, as discussed above), then the matched filter approach canoften be reduced to a simple vector dot product between a set of sparsePRN data, and mean-removed excerpts of the composite signalcorresponding thereto. (Note that the PRN data need not be sparse andmay arrive in contiguous bursts, such as in British patent publication2,196,167 mentioned earlier wherein a given bit in a message hascontiguous PRN values associated with it.) Such a process steps throughall 480 sparse sets of PRN data and performs corresponding dot productoperations. If the dot product is positive, the corresponding bit of theauxiliary data signal is a “1;” if the dot product is negative, thecorresponding bit of the auxiliary data signal is a “0.” If severalalignments of the auxiliary data signal within the framed compositesignal are possible, this procedure is repeated at each candidatealignment, and the one yielding the highest correlation is taken astrue. (Once the correct alignment is determined for a single bit of theauxiliary data signal, the alignment of all the other bits can bedetermined therefrom. “Alignment,” perhaps better known as“synchronization,” can be achieved by primarily through the very samemechanisms which lock on and track the voice signal itself and allow forthe basic functioning of the cellular unit).

[0528] Security Considerations

[0529] Security of the presently described embodiments depends, in largepart, on security of the PRN data and/or security of the auxiliary data.In the following discussion, a few of many possible techniques forassuring the security of these data are discussed.

[0530] In a first embodiment, each telephone 2010 is provided with along noise key unique to the telephone. This key may be, e.g., a highlyunique 10,000 bit string stored in ROM. (In most applications, keyssubstantially shorter than this may be used.)

[0531] The central office 2014 has access to a secure disk 2052 on whichsuch key data for all authorized telephones are stored. (The disk may beremote from the office itself.)

[0532] Each time the telephone is used, fifty bits from this noise keyare identified and used as the seed for a deterministic pseudo randomnumber generator. The data generated by this PRN generator serve as thePRN data for that telephone call.

[0533] The fifty bit seed can be determined, e.g., by using a randomnumber generator in the telephone to generate an offset address between0 and 9,950 each time the telephone is used to place a call. The fiftybits in the noise key beginning at this offset address are used as theseed.

[0534] During call setup, this offset address is transmitted by thetelephone, through the cell site 2012, to the central office 2014.There, a computer at the central office uses the offset address to indexits copy of the noise key for that telephone. The central office therebyidentifies the same 50 bit seed as was identified at the telephone. Thecentral office 2014 then relays these 50 bits to the cell site 2012,where a deterministic noise generator like that in the telephonegenerates a PRN sequence corresponding to the 50 bit key and appliessame to its decoder 2038.

[0535] By the foregoing process, the same sequence of PRN data isgenerated both at the telephone and at the cell site. Accordingly, theauxiliary data encoded on the voice data by the telephone can besecurely transmitted to, and accurately decoded by, the cell site. Ifthis auxiliary data does not match the expected auxiliary data (e.g.data transmitted at call set-up), the call is flagged as fraudulent andappropriate remedial action is taken.

[0536] It will be recognized that an eavesdropper listening to radiotransmission of call set-up information can intercept only the randomlygenerated offset address transmitted by the telephone to the cell site.This data, alone, is useless in pirating calls. Even if the hacker hadaccess to the signals provided from the central office to the cell site,this data too is essentially useless: all that is provided is a 50 bitseed. Since this seed is different for nearly each call (repeating only1 out of every 9,950 calls), it too is unavailing to the hacker.

[0537] In a related system, the entire 10,000 bit noise key can be usedas a seed. An offset address randomly generated by the telephone duringcall set-up can be used to identify where, in the PRN data resultingfrom that seed, the PRN data to be used for that session is to begin.(Assuming 4800 voice samples per second, 4800 PRN data are required persecond, or about 17 million PRN data per hour. Accordingly, the offsetaddress in this variant embodiment will likely be far larger than theoffset address described above.)

[0538] In this variant embodiment, the PRN data used for decoding ispreferably generated at the central station from the 10,000 bit seed,and relayed to the cell site. (For security reasons, the 10,000 bitnoise key should not leave the security of the central office.)

[0539] In variants of the foregoing systems, the offset address can begenerated by the central station or at the cell site, and relayed to thetelephone during call set-up, rather than vice versa.

[0540] In another embodiment, the telephone 2010 may be provided with alist of one-time seeds, matching a list of seeds stored on the securedisk 2052 at the central office. Each time the telephone is used tooriginate a new call, the next seed in the list is used. By thisarrangement, no data needs to be exchanged relating to the seed; thetelephone and the carrier each independently know which seed to use togenerate the pseudo random data sequence for the current session.

[0541] In such an embodiment, the carrier can determine when thetelephone has nearly exhausted its list of seeds, and can transmit asubstitute list (e.g. as part of administrative data occasionallyprovided to the telephone). To enhance security, the carrier may requirethat the telephone be returned for manual reprogramming, to avoid radiotransmission of this sensitive information. Alternatively, thesubstitute seed list can be encrypted for radio transmission using anyof a variety of well known techniques.

[0542] In a second class of embodiments, security derives not from thesecurity of the PRN data, but from security of the auxiliary messagedata encoded thereby. One such system relies on transmission of arandomly selected one of 256 possible messages.

[0543] In this embodiment, a ROM in the telephone stores 256 differentmessages (each message may be, e.g., 128 bits in length). When thetelephone is operated to initiate a call, the telephone randomlygenerates a number between 1 and 256, which serves as an index to thesestored messages. This index is transmitted to the cell site during callset-up, allowing the central station to identify the expected messagefrom a matching database on secure disk 2052 containing the same 256messages. (Each telephone has a different collection of messages.)(Alternatively, the carrier may randomly select the index number duringcall set-up and transmit it to the telephone, identifying the message tobe used during that session.) In a theoretically pure world whereproposed attacks to a secure system are only mathematical in nature,much of these additional layers of security might seem superfluous. (Theaddition of these extra layers of security, such as differing themessages themselves, simply acknowledge that the designer of actualpublic-functioning secure systems will face certain implementationeconomics which might compromise the mathematical security of the coreprinciples of this technology, and thus these auxiliary layers ofsecurity may afford new tools against the inevitable attacks onimplementation).

[0544] Thereafter, all voice data transmitted by the telephone for theduration of that call is steganographically encoded with the indexedmessage. The cell site checks the data received from the telephone forthe presence of the expected message. If the message is absent, or if adifferent message is decoded instead, the call is flagged as fraudulentand remedial action is taken.

[0545] In this second embodiment, the PRN data used for encoding anddecoding can be as simple or complex as desired. A simple system may usethe same PRN data for each call. Such data may be generated, e.g., by adeterministic PRN generator seeded with fixed data unique to thetelephone and known also by the central station (e.g. a telephoneidentifier), or a universal noise sequence can be used (i.e. the samenoise sequence can be used for all telephones). Or the pseudo randomdata can be generated by a deterministic PRN generator seeded with datathat changes from call to call (e.g. based on data transmitted duringcall set-up identifying, e.g., the destination telephone number, etc.).Some embodiments may seed the pseudo random number generator with datafrom a preceding call (since this data is necessarily known to thetelephone and the carrier, but is likely not known to pirates).

[0546] Naturally, elements from the foregoing two approaches can becombined in various ways, and supplemented by other features. Theforegoing embodiments are exemplary only, and do not begin to catalogthe myriad approaches which may be used. Generally speaking, any datawhich is necessarily known or knowable by both the telephone and thecell site/central station, can be used as the basis for either theauxiliary message data, or the PRN data by which it is encoded.

[0547] Since the preferred embodiments of this aspect of the presenttechnology each redundantly encodes the auxiliary data throughout theduration of the subscriber's digitized voice, the auxiliary data can bedecoded from any brief sample of received audio. In the preferred formsof this aspect of the technology, the carrier repeatedly checks thesteganographically encoded auxiliary data (e.g. every 10 seconds, or atrandom intervals) to assure that it continues to have the expectedattributes.

[0548] While the foregoing discussion has focused on steganographicallyencoding a transmission from a cellular telephone, it will be recognizedthat transmissions to a cellular telephone can be steganographicallyencoded as well. Such arrangements find applicability, e.g., inconveying administrative data (i.e. non-voice data) from the carrier toindividual telephones. This administrative data can be used, forexample, to reprogram parameters of targeted cellular telephones (or allcellular telephones) from a central location, to update seed lists (forsystems employing the above-described on-time pad system), to apprise“roaming” cellular telephones of data unique to an unfamiliar localarea, etc.

[0549] In some embodiments, the carrier may steganographically transmitto the cellular telephone a seed which the cellular phone is to use inits transmissions to the carrier during the remainder of that session.

[0550] While the foregoing discussion has focused on steganographicencoding of the baseband digitized voice data, artisans will recognizethat intermediate frequency signals (whether analog or digital) canlikewise be steganographically encoded in accordance with principles ofthe technology. An advantage of post-baseband encoding is that thebandwidth of these intermediate signals is relatively large comparedwith the baseband signal, allowing more auxiliary data to be encodedtherein, or allowing a fixed amount of auxiliary data to be repeatedmore frequently during transmission. (If steganographic encoding of anintermediate signal is employed, care should be taken that theperturbations introduced by the encoding are not so large as tointerfere with reliable transmission of the administrative data, takinginto account any error correcting facilities supported by the packetformat).

[0551] Those skilled in the art will recognize that the auxiliary data,itself, can be arranged in known ways to support error detecting, orerror correcting capabilities by the decoder 38. The interested readeris referred, e.g., to Rorabaugh, Error Coding Cookbook, McGraw Hill,1996, one of many readily available texts detailing such techniques.

[0552] While the preferred embodiment of this aspect of the technologyis illustrated in the context of a cellular system utilizing packetizeddata, other wireless systems do not employ such conveniently frameddata. In systems in which framing is not available as an aid tosynchronization, synchronization marking can be achieved within thecomposite data signal by techniques such as that detailed in applicant'sprior applications. In one class of such techniques, the auxiliary dataitself has characteristics facilitating its synchronization. In anotherclass of techniques, the auxiliary data modulates one or more embeddedcarrier patterns which are designed to facilitate alignment anddetection.

[0553] As noted earlier, the principles of the technology are notrestricted to use with the particular forms of steganographic encodingdetailed above. Indeed, any steganographic encoding technique previouslyknown, or hereafter invented, can be used in the fashion detailed aboveto enhance the security or functionality of cellular (or other wireless,e.g. PCS) communications systems. Likewise, these principles are notrestricted to wireless telephones; any wireless transmission may beprovided with an “in-band” channel of this type.

[0554] It will be recognized that systems for implementing applicant'stechnology can comprises dedicated hardware circuit elements, but morecommonly comprise suitably programmed microprocessors with associatedRAM and ROM memory (e.g. one such system in each of the telephone 2010,cell-site 2012, and central office 2014).

ENCODING BY BIT CELLS

[0555] The foregoing discussions have focused on incrementing ordecrementing the values of individual pixels, or of groups of pixels(bumps), to reflect encoding of an auxiliary data signal combined with apseudo random noise signal. The following discussion details a variantembodiment wherein the auxiliary data—without pseudo randomization—isencoded by patterned groups of pixels, here termed bit cells.

[0556] Referring to FIGS. 41A and 41B, two illustrative 2×2 bit cellsare shown. FIG. 41A is used to represent a “0” bit of the auxiliarydata, while FIG. 41B is used to represent a “1” bit. In operation, thepixels of the underlying image are tweaked up or down in accordance withthe +/− values of the bit cells to represent one of these two bitvalues. (The magnitude of the tweaking at any given pixel, bit cell orregion of the image can be a function of many factors, as detailedbelow. It is the sign of the tweaking that defines the characteristicpattern.) In decoding, the relative biases of the encoded pixels areexamined (using techniques described above) to identify, for eachcorresponding region of the encoded image, which of the two patterns isrepresented.

[0557] While the auxiliary data is not explicitly randomized in thisembodiment, it will be recognized that the bit cell patterns may beviewed as a “designed” carrier signal, as discussed above.

[0558] The substitution of the previous embodiments' pseudo random noisewith the present “designed” information carrier affords an advantage:the bit cell patterning manifests itself in Fourier space. Thus, the bitcell patterning can act like the subliminal digital graticules discussedabove to help register a suspect image to remove scale/rotation errors.By changing the size of the bit cell, and the pattern therein, thelocation of the energy thereby produced in the spatial transform domaincan be tailored to optimize independence from typical imagery energy andfacilitate detection.

[0559] (While the foregoing discussion contemplates that the auxiliarydata is encoded directly—without randomization by a PRN signal, in otherembodiments, randomization can of course be used.)

MORE ON PERCEPTUALLY ADAPTIVE SIGNING

[0560] In several of the above-detailed embodiments, the magnitude ofthe signature energy was tailored on a region-by-region basis to reduceits visibility in an image (or its audibility in a sound, etc.). In thefollowing discussion, applicant more particularly considers the issue ofhiding signature energy in an image, the separate issues thereby posed,and solutions to each of these issues.

[0561] The goal of the signing process, beyond simply functioning, is tomaximize the “numeric detectability” of an embedded signature whilemeeting some form of fixed “visibility/acceptability threshold” set by agiven user/creator.

[0562] In service to design toward this goal, imagine the followingthree axis parameter space, where two of the axes are only half-axes(positive only), and the third is a full axis (both negative andpositive). This set of axes define two of the usual eight octal spacesof euclidean 3-space. As things refine and “deservedly separable”parameters show up on the scene (such as “extended local visibilitymetrics”), then they can define their own (generally) half-axis andextend the following example beyond three dimensions.

[0563] The signing design goal becomes optimally assigning a “gain” to alocal bump based on its coordinates in the above defined space, whilstkeeping in mind the basic needs of doing the operations fast in realapplications. To begin with, the three axes are the following. We'llcall the two half axes x and y, while the full axis will be z.

[0564] The x axis represents the luminance of the singular bump. Thebasic idea is that you can squeeze a little more energy into brightregions as opposed to dim ones. It is important to note that when true“psycho-linear—device independent” luminance values (pixel DN's) comealong, this axis might become superfluous, unless of course if theluminance value couples into the other operative axes (e.g. C*xy). Fornow, this is here as much due to the sub-optimality of currentquasi-linear luminance coding.

[0565] The y axis is the “local hiding potential” of the neighborhoodwithin which the bump finds itself. The basic idea is that flat regionshave a low hiding potential since the eye can detect subtle changes insuch regions, whereas complex textured regions have a high hidingpotential. Long lines and long edges tend toward the lower hidingpotential since “breaks and choppiness” in nice smooth long lines arealso somewhat visible, while shorter lines and edges, and mosaicsthereof, tend toward the higher hiding potential. These latter notionsof long and short are directly connected to processing time issues, aswell to issues of the engineering resources needed to carefully quantifysuch parameters. Developing the working model of the y-axis willinevitably entail one part theory to one part picky-artist-empiricism.As the parts of the hodge-podge y-axis become better known, they cansplinter off into their own independent axes if it's worth it.

[0566] The z-axis is the “with or against the grain” (discussed below)axis which is the full axis—as opposed to the other two half-axes. Thebasic idea is that a given input bump has a pre-existing bias relativeto whether one wishes to encode a ‘1’ or a ‘0’ at its location, which tosome non-trivial extent is a function of the reading algorithms whichwill be employed, whose (bias) magnitude is semi-correlated to the“hiding potential” of the y-axis, and, fortunately, can be usedadvantageously as a variable in determining what magnitude of a tweakvalue is assigned to the bump in question. The concomitant basic idea isthat when a bump is already your friend (i.e. its bias relative to itsneighbors already tends towards the desired delta value), then don'tchange it much. Its natural state already provides the delta energyneeded for decoding, without altering the localized image value much, ifat all. Conversely, if a bump is initially your enemy (i.e. its biasrelative to its neighbors tends away from the delta sought to be imposedby the encoding), then change it an exaggerated amount. This lateroperation tends to reduce the excursion of this point relative to itsneighbors, making the point less visibly conspicuous (a highly localizedblurring operation), while providing additional energy detectable whendecoding. These two cases are termed “with the grain” and “against thegrain” herein.

[0567] The above general description of the problem should suffice formany years. Clearly adding in chrominance issues will expand thedefinitions a bit, leading to a bit more signature bang for thevisibility, and human visibility research which is applied to theproblem of compression can equally be applied to this area but fordiametrically opposed reasons. Here are guiding principles which can beemployed in an exemplary application.

[0568] For speed's sake, local hiding potential can be calculated onlybased on a 3 by 3 neighborhood of pixels, the center one being signedand its eight neighbors. Beyond speed issues, there is also no data orcoherent theory to support anything larger as well. The design issueboils down to canning the y-axis visibility thing, how to couple theluminance into this, and a little bit on the friend/enemy asymmetrything. A guiding principle is to simply make a flat region zero, aclassic pure maxima or minima region a “1.0” or the highest value, andto have “local lines”, “smooth slopes”, “saddle points” and whatnot fallout somewhere in between.

[0569] The exemplary application uses six basic parameters: 1)luminance; 2) difference from local average; 3) the asymmetry factor(with or against the grain); 4) minimum linear factor (our crude attemptat flat v. lines v. maxima); 5) bit plane bias factor; and 6) globalgain (the user's single top level gain knob).

[0570] The Luminance, and Difference from Local Average parameters arestraight forward, and their use is addressed elsewhere in thisspecification.

[0571] The Asymmetry factor is a single scalar applied to the “againstthe grain” side of the difference axis of number 2 directly above.

[0572] The Minimum Linear factor is admittedly crude but it should be ofsome service even in a 3 by 3 neighborhood setting. The idea is thattrue 2D local minima and maxima will be highly perturbed along each ofthe four lines travelling through the center pixel of the 3 by 3neighborhood, while a visual line or edge will tend to flatten out atleast one of the four linear profiles. [The four linear profiles areeach 3 pixels in length, i.e., the top left pixel-center-bottom right;the top center-center-bottom center; the top right-center-bottom left;the right center-center-left center;]. Let's choose some metric ofentropy as applied to three pixels in a row, perform this on all fourlinear profiles, then choose the minimum value for our ultimateparameter to be used as our ‘y-axis.’

[0573] The Bit Plane Bias factor is an interesting creature with twofaces, the pre-emptive face and the post-emptive face. In the former,you simply “read” the unsigned image and see where all the biases fallout for all the bit planes, then simply boost the “global gain” of thebit planes which are, in total, going against your desired message, andleave the others alone or even slightly lower their gain. In thepost-emptive case, you chum out the whole signing process replete withthe pre-emptive bit plane bias and the other 5 parameters listed here,and then you, e.g., run the signed image through heavy JPEG compressionAND model the “gestalt distortion” of line screen printing andsubsequent scanning of the image, and then you read the image and findout which bit planes are struggling or even in error, you appropriatelybeef up the bit plane bias, and you run through the process again. Ifyou have good data driving the beefing process you should only need toperform this step once, or, you can easily Van-Cittertize the process(arcane reference to reiterate the process with some damping factorapplied to the tweaks).

[0574] Finally, there is the Global Gain. The goal is to make thissingle variable the top level “intensity knob” (more typically a slideror other control on a graphical user interface) that the slightlycurious user can adjust if they want to. The very curious user cannavigate down advanced menus to get their experimental hands on theother five variables here, as well as others.

[0575] Visible Watermark

[0576] In certain applications it is desirable to apply a visibleindicia to an image to indicate that it includes steganographicallyencoded data. In one embodiment, this indicia can be a lightly visiblelogo (sometimes termed a “watermark”) applied to one corner of theimage. This indicates that the image is a “smart” image, conveying datain addition to the imagery. A lightbulb is one suitable logo.

[0577] Appendix B

[0578] Applicant is preparing a steganographic marking/decoding“plug-in” for use with Adobe Photoshop software. A version of thissoftware, presented as commented source code, is including in themicrofiche appendix of U.S. Pat. No. 6,122,403. This patent, includingthe microfiche appendix, is herein incorporated by reference. The codewas written for compilation with Microsoft's Visual C++ compiler,version 4.0, and can be understood by those skilled in the art.

[0579] This source code sets forth various aspects of applicant'spresent embodiment, not only in encoding and decoding, but also in userinterface.

[0580] Applicant's copyrights in the Appendix B code are reserved, savefor permission to reproduce same as part of the specification of thepatent.

[0581] (While the Appendix B software is particularly designed for thesteganographic encoding and decoding of auxiliary data in/fromtwo-dimensional image data, many principles thereof are applicable tothe encoding of digitized audio.)

[0582] If marking of images becomes widespread (e.g. by softwarecompatible with Adobe's image processing software), a user of suchsoftware can decode the embedded data from an image and consult a publicregistry to identify the proprietor of the image. In some embodiments,the registry can serve as the conduit through which appropriate royaltypayments are forwarded to the proprietor for the user's use of an image.(In an illustrative embodiment, the registry is a server on theInternet, accessible via the World Wide Web, coupled to a database. Thedatabase includes detailed information on catalogued images (e.g. name,address, phone number of proprietor, and a schedule of charges fordifferent types of uses to which the image may be put), indexed byidentification codes with which the images themselves are encoded. Aperson who decodes an image queries the registry with the codes therebygleaned to obtain the desired data and, if appropriate, to forwardelectronic payment of a copyright royalty to the image's proprietor.)

[0583] Particular Data Formats

[0584] While the foregoing steganography techniques are broadlyapplicable, their commercial acceptance will be aided by establishmentof standards setting forth which pixels/bit cells represent what. Thefollowing discussion proposes one set of possible standards. Forexpository convenience, this discussion focuses on decoding of the data;encoding follows in a straightforward manner.

[0585] Referring to FIG. 42, an image 1202 includes a plurality of tiled“signature blocks” 1204. (Partial signature blocks may be present at theimage edges.) Each signature block 1204 includes an 8×8 array ofsub-blocks 1206. Each sub-block 1206 includes an 8×8 array of bit cells1208. Each bit cell comprises a 2×2 array of “bumps” 1210. Each bump1210, in turn, comprises a square grouping of 16 individual pixels 1212.

[0586] The individual pixels 1212 are the smallest quanta of image data.In this arrangement, however, pixel values are not, individually, thedata carrying elements. Instead, this role is served by bit cells 1208(i.e. 2×2 arrays of bumps 1210). In particular, the bumps comprising thebits cells are encoded to assume one of the two patterns shown in FIG.41. As noted earlier, the pattern shown in FIG. 41A represents a “0”bit, while the pattern shown in FIG. 41B represents a “1” bit. Each bitcell 1208 (64 image pixels) thus represents a single bit of the embeddeddata. Each sub-block 1206 includes 64 bit cells, and thus conveys 64bits of embedded data.

[0587] (The nature of the image changes effected by the encoding followsthe techniques set forth above under the heading MORE ON PERCEPTUALLYADAPTIVE SIGNING; that discussion is not repeated here.)

[0588] In the illustrated embodiment, the embedded data includes twoparts: control bits and message bits. The 16 bit cells 1208A in thecenter of each sub-block 1206 serve to convey 16 control bits. Thesurrounding 48 bit cells 1208B serve to convey 48 message bits. This64-bit chunk of data is encoded in each of the sub-blocks 1206, and isrepeated 64 times in each signature block 1204.

[0589] A digression: in addition to encoding of the image to redundantlyembed the 64 control/message bits therein, the values of individualpixels are additionally adjusted to effect encoding of subliminalgraticules through the image. In this embodiment, the graticulesdiscussed in conjunction with FIG. 29A are used, resulting in animperceptible texturing of the image. When the image is to be decoded,the image is transformed into the spatial domain, the Fourier-Mellintechnique is applied to match the graticule energy points with theirexpected positions, and the processed data is then inverse-transformed,providing a registered image ready for decoding. (The sequence of firsttweaking the image to effect encoding of the subliminal graticules, orfirst tweaking the image to effect encoding of the embedded data, is notbelieved to be critical. As presently practiced, the local gain factors(discussed above) are computed; then the data is encoded; then thesubliminal graticule encoding is performed. (Both of these encodingsteps make use of the local gain factors.))

[0590] Returning to the data format, once the encoded image has beenthus registered, the locations of the control bits in sub-block 1206 areknown. The image is then analyzed, in the aggregate (i.e. consideringthe “northwestern-most” sub-block 1206 from each signature block 1204),to determine the value of control bit #1 (represented in sub-block 1206by bit cell 1208Aa). If this value is determined (e.g. by statisticaltechniques of the sort detailed above) to be a “1,” this indicates thatthe format of the embedded data conforms to the standard detailed herein(the Digimarc Beta Data Format). According to this standard, control bit#2 (represented by bit cells 1208Ab) is a flag indicating whether theimage is copyrighted. Control bit #3 (represented by bit cells 1208Ac)is a flag indicating whether the image is unsuitable for viewing bychildren. Certain of the remaining bits are used for errordetection/correction purposes.

[0591] The 48 message bits of each sub block 1206 can be put to any use;they are not specified in this format. One possible use is to define anumeric “owner” field and a numeric “image/item” field (e.g. 24 bitseach).

[0592] If this data format is used, each sub-block 1206 contains theentire control/message data, so same is repeated 64 times within eachsignature block of the image.

[0593] If control bit #1 is not a “1,” then the format of the embeddeddata does not conform to the above described standard. In this case, thereading software analyzes the image data to determine the value ofcontrol bit #4. If this bit is set (i.e. equal to “1”), this signifiesan embedded ASCII message. The reading software then examines controlbits #5 and #6 to determine the length of the embedded ASCII message.

[0594] If control bits #5 and #6 both are “0,” this indicates the ASCIImessage is 6 characters in length. In this case, the 48 bit cells 1208Bsurrounding the control bits 1208A are interpreted as six ASCIIcharacters (8 bits each). Again, each sub-block 1206 contains the entirecontrol/message data, so same is repeated 64 times within each signatureblock 1204 of the image.

[0595] If control bit #5 is “0” and control bit #6 is “1,” thisindicates the embedded ASCII message is 14 characters in length. In thiscase, the 48 bit cells 1208B surrounding the control bits 1208A areinterpreted as the first six ASCII characters. The 64 bit cells 1208 ofthe immediately-adjoining sub-block 1220 are interpreted as the finaleight ASCII characters.

[0596] Note that in this arrangement, the bit-cells 1208 in the centerof sub-block 1220 are not interpreted as control bits. Instead, theentire sub-block serves to convey additional message bits. In this casethere is just one group of control bits for two sub-blocks.

[0597] Also note than in this arrangement, pairs of sub-blocks 1206contains the entire control/message data, so same is repeated 32 timeswithin each signature block 1204 of the image.

[0598] Likewise if control bit #5 is “1” and control bit #6 is “0.” Thisindicates the embedded ASCII message is 30 characters in length. In thiscase, 2×2 arrays of sub-blocks are used for each representation of thedata. The 48 bit cells 1208B surrounding control bits 1208A areinterpreted as the first six ASCII characters. The 64 bit cells of eachof adjoining block 1220 are interpreted as representing the next 8additional characters. The 64 bits cells of sub-block 1222 areinterpreted as representing the next 8 characters. And the 64 bit cellsof sub-block 1224 are interpreted as representing the final 8characters. In this case, there is just one group of control bits forfour sub-blocks. And the control/message data is repeated 16 timeswithin each signature block 1204 of the image.

[0599] If control bits #5 and #6 are both “1”s, this indicates an ASCIImessage of programmable length. In this case, the reading softwareexamines the first 16 bit cells 1208B surrounding the control bits.Instead of interpreting these bit cells as message bits, they areinterpreted as additional control bits (the opposite of the casedescribed above, where bit cells normally used to represent control bitsrepresented message bits instead). In particular, the reading softwareinterprets these 16 bits as representing, in binary, the length of theASCII message. An algorithm is then applied to this data (matching asimilar algorithm used during the encoding process) to establish acorresponding tiling pattern (i.e. to specify which sub-blocks conveywhich bits of the ASCII message, and which convey control bits.)

[0600] In this programmable-length ASCII message case, control bits aredesirably repeated several times within a single representation of themessage so that, e.g., there is one set of control bits forapproximately every 24 ASCII characters. To increase packing efficiency,the tiling algorithm can allocate (divide) a sub-block so that some ofits bit-cells are used for a first representation of the message, andothers are used for another representation of the message.

[0601] Reference was earlier made to beginning the decoding of theregistered image by considering the “northwestern-most” sub-block 1206in each signature block 1204. This bears elaboration.

[0602] Depending on the data format used, some of the sub-blocks 1206 ineach signature block 1204 may not include control bits. Accordingly, thedecoding software desirably determines the data format by firstexamining the “northwestern-most” sub-block 1206 in each signature block1204; the 16 bits cells in the centers of these sub-blocks will reliablyrepresent control bits. Based on the value(s) of one or more of thesebits (e.g. the Digimarc Beta Data Format bit), the decoding software canidentify all other locations throughout each signature block 1204 wherethe control bits are also encoded (e.g. at the center of each of the 64sub-blocks 1206 comprising a signature block 1204), and can use thelarger statistical base of data thereby provided to extract theremaining control bits from the image (and to confirm, if desired, theearlier control bit(s) determination). After all control bits havethereby been discerned, the decoding software determines (from thecontrol bits) the mapping of message bits to bit cells throughout theimage.

[0603] To reduce the likelihood of visual artifacts, the numbering ofbit cells within sub-blocks is alternated in a checkerboard-likefashion. That is, the “northwestern-most” bit cell in the“northwestern-most” sub-block is numbered “0.” Numbering increases leftto right, and successively through the rows, up to bit cell 63. Eachsub-block diametrically adjoining one of its comers (i.e. sub-block1224) has the same ordering of bit cells. But sub-blocks adjoining itsedges (i.e. sub-blocks 1220 and 1222) have the opposite numbering. Thatis, the “northwestern-most” bit cell in sub-blocks 1220 and 1222 isnumbered “63.” Numbering decreases left to right, and successivelythrough the rows, down to 0. Likewise throughout each signature block1204.

[0604] In a variant of the Digimarc beta format, a pair of sub-blocks isused for each representation of the data, providing 128 bit cells. Thecenter 16 bit cells 1208 in the first sub-block 1206 are used torepresent control bits. The 48 remaining bit cells in that sub-block,together with all 64 bit cells 1208 in the adjoining sub-block 1220, areused to provide a 112-bit message field. Likewise for every pair ofsub-blocks throughout each signature block 1204. In such an arrangement,each signature block 1204 thus includes 32 complete representations ofthe encoded data (as opposed to 64 representations in theearlier-described standard). This additional length allows encoding oflonger data strings, such as a numeric IP address (e.g. URL).

[0605] Obviously, numerous alternative data formats can be designed. Theparticular format used can be indicated to the decoding software byvalues of one or more control bits in the encoded image.

[0606] In the Appendix B software, the program SIGN_PUBLIC.CPP effectsencoding of an image using a signature block/sub-block/bit cellarrangement like that detailed above. As of this writing, thecorresponding decoding software has not yet been written, but itsoperation is straightforward given the foregoing discussion and thedetails in the SIGN-PUBLIC.CPP software.

[0607] Other Applications

[0608] Before concluding, it may be instructive to review some of theother fields where principles of applicant's technology can be employed.

[0609] One is smart business cards, wherein a business card is providedwith a photograph having unobtrusive, machine-readable contact dataembedded therein. (The same function can be achieved by changing thesurface microtopology of the card to embed the data therein.)

[0610] Another promising application is in content regulation.Television signals, images on the internet, and other content sources(audio, image, video, etc.) can have data indicating their“appropriateness” (i.e. their rating for sex, violence, suitability forchildren, etc.) actually embedded in the content itself rather thanexternally associated therewith. Television receivers, internet surfingsoftware, etc., can discern such appropriateness ratings (e.g. by use ofuniversal code decoding) and can take appropriate action (e.g. notpermitting viewing of an image or video, or play-back of an audiosource).

[0611] In a simple embodiment of the foregoing, the embedded data canhave one or more “flag” bits, as discussed earlier. One flag bit cansignify “inappropriate for children.” (Others can be, e.g., “this imageis copyrighted” or “this image is in the public domain.”) Such flag bitscan be in a field of control bits distinct from an embedded message, orcan—themselves—be the message. By examining the state of these flagbits, the decoder software can quickly apprise the user of variousattributes of the image.

[0612] (As discussed earlier, control bits can be encoded in knownlocations in the image—known relative to the subliminal graticules—andcan indicate the format of the embedded data (e.g. its length, its type,etc.) As such, these control bits are analogous to data sometimesconveyed in prior art file headers, but in this case they are embeddedwithin an image, instead of prepended to a file.)

[0613] The field of merchandise marking is generally well served byfamiliar bar codes and universal product codes. However, in certainapplications, such bar codes are undesirable (e.g. for aestheticconsiderations, or where security is a concern). In such applications,applicant's technology may be used to mark merchandise, either throughin innocuous carrier (e.g. a photograph associated with the product), orby encoding the microtopology of the merchandise's surface, or a labelthereon.

[0614] There are applications—too numerous to detail—in whichsteganography can advantageously be combined with encryption and/ordigital signature technology to provide enhanced security.

[0615] Medical records appear to be an area in which authentication isimportant. Steganographic principles—applied either to film-basedrecords or to the microtopology of documents—can be employed to providesome protection against tampering.

[0616] Many industries, e.g. automobile and airline, rely on tags tomark critical parts. Such tags, however, are easily removed, and canoften be counterfeited. In applications wherein better security isdesired, industrial parts can be steganographically marked to provide aninconspicuous identification/authentication tag.

[0617] In various of the applications reviewed in this specification,different messages can be steganographically conveyed by differentregions of an image (e.g. different regions of an image can providedifferent internet URLs, or different regions of a photocollage canidentify different photographers). Likewise with other media (e.g.sound).

[0618] Some software visionaries look to the day when data blobs willroam the datawaves and interact with other data blobs. In such an era,it will be necessary for such blobs to have robust and incorruptibleways of identifying themselves. Steganographic techniques again holdmuch promise here.

[0619] Finally, message changing codes—recursive systems in whichsteganographically encoded messages actually change underlyingsteganographic code patterns—offer new levels of sophistication andsecurity. Such message changing codes are particularly well suited toapplications such as plastic cash cards where time-changing elements areimportant to enhance security.

[0620] Again, while applicant prefers the particular forms ofsteganographic encoding detailed above, the diverse applicationsdisclosed in this specification can largely be practiced with othersteganographic marking techniques, many of which are known in the priorart. Likewise, while the specification has focused on applications ofthis technology to images, the principles thereof are generally equallyapplicable to embedding such information in audio, physical media, orany other carrier of information.

[0621] Finally, while the specification has been illustrated withparticular embodiments, it will be recognized that elements, componentsand steps from these embodiments can be recombined in differentarrangements to serve different needs and applications, as will bereadily apparent to those of ordinary skill in the art.

[0622] In view of the wide variety of implementations and applicationsto which the principles of this technology can be put, it should beapparent that the detailed embodiments are illustrative only and in noway limit the scope of my invention. Instead, I claim as my inventionall such embodiments as come within the scope and spirit of thefollowing claims and equivalents thereto.

APPENDIX A METHOD AND APPARATUS FOR MARKING UTILITARIAN OBJECTS WITHDIGITAL DATA Related Application Data

[0623] This application is a continuation-in-part of allowed applicationSer. No. 08/438,159, filed May 8, 1995, which is a continuation-in-partof application Ser. No. 08/327,426, filed Oct. 21, 1994 (now U.S. Pat.No. 5,768,426), which is a continuation-in-part of abandoned applicationSer. No. 08/215,289, filed Mar. 17, 1994.

[0624] The subject matter of this application is also related to that ofthe present assignee's other issued U.S. Pat. Nos. (5,636,292,5,710,834, 5,721,788, 5,745,604, 5,748,763, 5,748,783, 5,768,426, and5,809,160), allowed application Ser. Nos. (08/438,159, 08/508,083,08/534,005, 08/637,531, and 08/763,847) and pending application Ser.Nos. (09/074,034, 08/967,693, 08/951,858, 08/746,613 and 08/649,419).

Field of the Invention

[0625] The present invention relates to methods and systems forinconspicuously marking utilitarian objects (e.g. microprocessors,compact disks, pharmaceutical tablets, bolts and hardware, wristwatches,automotive components, etc.) with digital data.

Background and Summary of the Invention

[0626] Sometimes things are not what they seem. An Intel integratedcircuit, sold by a local computer shop as a 400 MHz Pentium II, may havebeen a 333 MHz Pentium II when it left the Intel factory. A defensecontractor who ordered a specially-tested $50 bolt for use in ademanding aerospace application may be supplied with an inferior 50 centbolt instead. Many enterprises suffer by such fraudulent productsubstitution.

[0627] Considering more particularly the integrated circuit case, ICmanufacturers rigorously test their chips to assure that publishedspecifications are met under all expected operating conditions. A chipthat meets specs when operated at 400 MHz commands a substantial pricepremium over a chip that meets specs only at 333 MHz.

[0628] Commonly, chips with lower speed ratings are produced on the samefabrication lines as chips with top speed ratings but, during post-fabtesting, fail to meet the more demanding spec under some extreme ofoperating conditions (e.g. at stressful ambient conditions, marginalpower supply potentials, etc.). Unscrupulous distributors, aware thatsuch chips may meet the higher specs under most conditions, sometimes“push” the speed ratings and re-mark, e.g., a 333 MHz chip as the muchmore costly 400 MHz chip.

[0629] Accounts of such duplicity are common. The Jun. 5, 1998, OrangeCounty Register reported on purchasers who were duped into buying 233MHz Pentium II processors for $620 each (instead of theirthen-prevailing $198 price), thinking they were 300 or 350 MHz models.Three days later, an account of such deception appeared in ComputerDealer news, this time involving incidents in Germany. Soon thereafter,Hong Kong Customs officials seized HK$ 2.9 million of similarlyre-labeled Pentium II processors. (South China Morning Post, Aug. 18,1998.)

[0630] Large computer companies, wary of unscrupulous chip distributors,commonly perform their own quality assurance testing of incoming chips.This testing is complex, costly, and time-consuming, but is viewed asnecessary in order to assure the quality of the computer company'sproducts.

[0631] One solution to this problem is for the manufacturer to encode—atthe conclusion of testing—the chip's speed in a write-once memory (e.g.fusible links) formed in the integrated circuitry. This data can then beread-out by a subsequent purchaser of the chip to determine the originalmanufacturer's intended speed rating. Such an arrangement is detailed inIntel's U.S. Pat. No. 5,734,274.

[0632] While this electrical-encoding approach obviates the need for thepurchaser to perform its own lengthy quality assurance testing, otherdrawbacks persist. For example, the purchaser must still remove the chipconnector from its static-protective packaging and mate it with thesocket of a reader device in order to discern the encoded speed data. Sodoing exposes the chip to potential static damage, thus requiring thatthis procedure be performed in a highly controlled environment byskilled personnel. Moreover, this approach increases the semiconductordie size, and impacts the yield.

[0633] A related approach is to form several (e.g. eight) metal traceson or near the exterior of the integrated circuit package, and laser-cutselected traces to represent one of e.g., 256 different productgrades/configurations. Such an arrangement is detailed in Intel's U.S.Pat. No. 5,686,759.

[0634] While an improvement in some respects over the fusible linkapproach, this latter technique has drawbacks of its own. For example,the provision of the metal traces on or near the exterior of the packagelimits packaging options, and makes assembly of the package morecomplex. Moreover, fairly sophisticated inspection equipment must beused to discern these product markings.

[0635] Finally, both of the foregoing approaches are suitable only withintegrated circuits and the like, and have no counterpart, e.g., forbolts, etc.

[0636] To mark articles other than circuitry, a variety of techniquescan be used. Most commonly, alphanumeric symbols are printed orotherwise formed on articles, permitting identification by inspection.However, such markings can readily be altered (as demonstrated by theremarking of integrated circuits, discussed above).

[0637] If a product marking is to be made resistant to tampering, afirst step is to hide its significance from potential tamperers. One wayof doing this is to employ computer-readable indicia (such asbar-codes), instead of alphanumeric symbols.

[0638] While bar codes are less likely to invite tampering thanalphanumeric symbols, they still stand out as product markings. Stillbetter would be product markings that, altogether, escape recognition assuch.

[0639] Various such techniques are known. For example, numerous patentsteach the marking of paper currency, lottery tickets and the like, withmagnetic particles, phosphorescent dyes, etc. Such marking permits theauthenticity of the articles to be verified. But the “bandwidth” of suchinconspicuous techniques is quite limited, commonly being restricted toa single valid/invalid determination. Moreover, most such techniques areill-suited for after-the-fact application to an article. Instead, suchmarkings must generally be implemented as part of the article's originalformation

[0640] In accordance with a preferred embodiment of the presentinvention, the foregoing and other drawbacks of the prior art areovercome. In an illustrative embodiment, the ceramic or plastic housingof an integrated circuit is provided with a textured surface in whichdigital data is encoded. The texturing does not alert the public to theconveyance of data, yet tens- or hundreds- of bits of data can beconveyed. The textured surface can be “read” using a hand-held scanner,without exposing the integrated circuit to possible static damage. Chipspeed, together with other encoded data (e.g. date of fabrication, placeof fabrication, size of cache, etc.) can thereby be discerned.Inspection of chips can be performed quickly by less-skilled personnel,and without special environmental controls.

[0641] In some embodiments, the texturing is effected through toolingused to produce, or modify, the packaging. In others, the texturing iseffected by a patterned layer of additional material applied to a smoothsurface. In still other embodiments, the surface is not textured butinstead is printed with a seemingly random pattern in which the digitalinformation is encoded.

[0642] These techniques can be applied to any utilitarian object.Pharmaceuticals, compact disks, bolts and special hardware, automotiveparts, and wristwatches, are just a few other examples.

[0643] The foregoing and other features and advantages of the presentinvention will be more readily apparent from the following detaileddescription, which proceeds with reference to the accompanying drawings.

Brief Description of the Drawings

[0644]FIG. 1 shows an integrated circuit having a textured packageaccording to one embodiment of the present invention.

[0645]FIG. 2 detail steps in an encoding process used in one embodimentof the invention.

[0646]FIG. 3 is a diagram showing an apparatus used to decode texturedproduct markings according to one embodiment of the invention.

Detailed Description of Illustrative Embodiments

[0647] Referring to FIG. 1, an integrated circuit 10 includes anexterior housing, or package 12. The housing can be formed in numerousways. One is by injection molding. Another is by known ceramic-shapingtechniques. At some point prior to shipment, the surface micro-topologyof an area 14 on the housing is shaped in a seemingly random manner.(The area 14 can span the entire housing, if desired.) In the preferredembodiments, the patterning is substantially uniform across its extent,and may look like pebbling, mottling, graininess, or roughness. Yet thisseemingly random surface conveys plural-bit digital information.

[0648] In an illustrative production cycle, a semiconductor wafer isprocessed to form several integrated circuits. Testing is conducted todetermine the speed rating (or other grade) of each circuit. (Thetesting can be done while all the circuits are still on the wafer, orafter the wafer has been diced into dies, or after the dies have beenpackaged in a housing.) The housing is shaped with a texture thatreflects the test results, and/or other circuit characteristics.

[0649] The circuits then enter the stream of commerce and eventually endup at a computer manufacturer. On receipt, the manufacturer checks thecircuits' grade using a simple hand-scanner. The scanner reflects lightfrom the textured surfaces of the integrated circuit packages, producingdata that is fed to a microprocessor-based terminal. The terminaldecodes the data and extracts the encoded information (optionallyreferring to a look-up-table or database to expand coded values intotextual descriptions). The terminal presents a display of the decodedinformation (e.g. speed rating, date and place of manufacture, etc.),and logs same into an inventory control database. If the decoded speedrating is different than that marked on the package, the manufacturercan return the circuit to the distributor as being non-conforming.

[0650] In an exemplary embodiment, the encoded information is 32 bits,and is broken down into fields as follows: Bits 1-5 Processor speed: 0 - unspecified  1 - 100 MHz  2 - 125 MHz  3 - 133 MHz  4 - 150 MHz 5 - 166 MHz  6 - 175 MHz  7 - 200 MHz  8 - 225 MHz  9 - 233 MHz 10 -250 MHz 11 - 266 MHz 12 - 275 MHz 13 - 300 MHz 14 - 325 MHz 15 - 333 MHz16 - 350 MHz 17 - 366 MHz 18 - 375 MHz 19 - 400 MHz 20 through 31 -[reserved] Bits 6-20 Manufacture date, coded as day numbers, with 0 =Jan. 1, 1998 Bits 21-23 Cache  0 - no cache  1 - 128 cache  2 - 256 Kcache  3 - 512 K cache  4 - 1024 K cache  5 through 7 [reserved] Bits24-28 Fab identification  0 - Fab line #1  1 - Fab line #2  . . . etc .. . Bits 29-32 Processor Family  0 - Pentium  1 - Pentium with MMX  2 -Pentium II  3 - Mobile Pentium  4 - Pentium II Xeon  5 - Celeron  6through 15 - [reserved]

[0651] Considering the encoding process in more detail, there are manytechniques for representing plural bits of binary data in noise-likepatterns. Many rely on spread-spectrum techniques. In one technique(FIG. 2), the binary data is represented as a sequence of “−1”s and “1”sinstead of “0”s and “1”s. The binary data payload can comprise a singledatum, but more typically comprises several. For expository convenience,the data payload in the exemplary embodiment comprises 4 bits. More orless bits, of course, can be used. (Error detecting/correcting bits canbe included if desired.)

[0652] A pseudo-random grid pattern, also comprised of “−1 ”s and “1”sis generated. (In the exemplary embodiment, the pseudo-random gridpattern is 7×7 cells, as shown in FIG. 2C.) To encode, the first elementof the grid is multiplied by the first bit of the binary data payload.The second element of the grid is multiplied by the second bit of thebinary data payload, and so forth. At the fifth element of the grid, thebinary data payload has been exhausted, so it is recycled from thebeginning. Thus the fifth element of the grid corresponds to the firstbit of the payload, the second element of the grid corresponds to thesecond bit of the payload, etc. The results are shown at FIG. 2D. Thisprocess yields an output grid pattern of “−1”s and “1”s in which thebinary data sequence has been encoded. (In other embodiments, the bitsof the binary data payload need not be mapped to successive cells of thepseudo-random grid in row/column order. Instead, any known mapping ofpayload bits to grid cells can be employed.)

[0653] (It will be recognized that the binary data payload can beextracted from the output grid pattern by the inverse of thejust-described operation. The values in the output grid pattern aredivided by corresponding elements of the same pseudo-random gridpattern, yielding a repeated version of the binary data payloadsequence.)

[0654] After the output grid pattern is determined, the pattern is usedto texture the surface of the integrated circuit housing. If the housingis made by an injection molding process, the mold can be etched by acomputer-driven etching apparatus. Each cell in the output grid patterncan correspond, e.g., to a 250×250 micron patch on the mold If theoutput grid pattern in a particular cell has a value of “1,” adepression can be formed in a corresponding patch on the mold surface.If the output grid pattern in a particular cell has a value of “−1,” nodepression is formed. (The depth of the depressions can depend onaesthetic considerations. Typical depressions have a depth less than ahalf millimeter, and may be on the order of the patch size (250 microns)or less.)

[0655] The resulting pattern of mold-pitting is a physical manifestationof the output grid pattern. When the mold is used to form an integratedcircuit housing, the negative of this pattern will be created, with eachpit resulting in a raised point on the housing.

[0656] The size of the textured region depends on the patch size, andthe number of rows/columns in the output grid pattern. The larger thetextured region, the more “signal” is available for decoding, and theless exacting can be the specifications of the reading device. Atextured region about one centimeter on a side has been found to providemore than adequate signal. Smaller textured regions (or larger) can beused, depending on the application requirements.

[0657] Techniques other than computer-controlled etching apparatuses canbe used to shape the mold in accordance with the output grid signal Asmall computer-controlled milling machine can be used. So can lasercutting devices.

[0658] While the foregoing approach contemplates that the housing isformed with the texture already on it, in other embodiments the housingcan be formed with a flat surface, and the texturing applied later, asby a heated press mold (assuming the packaging material isthermoplastic).

[0659] To enhance the “signal” conveyed by the texturing, surfacechanges can be made corresponding to both “1” and “−1” values in theoutput pattern grid (instead of just corresponding to the “1” values, asdescribed above). Thus, raised areas are formed in patches correspondingto “1” valued output pattern cells, and pits are formed corresponding to“−1” valued output pattern cells.

[0660] In other embodiments, the texturing can also be applied by anadditional layer of material applied to the housing in the desiredoutput pattern after the housing has been formed. For example, a viscousink can be applied in a screen printing process. The screen has anopening where the corresponding cell of the output grid pattern has a“1” value, and no opening otherwise. When the viscous ink is appliedthrough the screen, small patches of ink are deposited where the screenhad openings, but not elsewhere. (Patches larger than 250 microns may beemployed in such embodiments, depending on the resolution limitations ofthe screen printing process.) The result is again a textured surface,with the pattern of raised areas conveying the binary data payload.

[0661] Various material other than ink can be applied to form thetextured layer on top of the housing. Thermoplastics and epoxy resinsare just two alternatives.

[0662] In some such embodiments, techniques other than printing are usedto apply a textured layer to the housing. For example, variousphotolithographic techniques can be used. One technique employs aphoto-reactive polymer, which is applied to the surface and thenoptically exposed through a mask corresponding to the output gridpattern. The exposed polymer is developed, thereby removing patches ofmaterial.

[0663] In still other embodiments, the output grid pattern is printedonto the housing surface in two contrasting colors (e.g. black andwhite). Cells having a “1” value can be printed in one color, and cellshaving a “−1” value can be printed in another. In such embodiments, thebinary payload is not discerned from a pattern of textures, but ratherfrom a pattern of contrasting colors.

[0664] In a variant of the foregoing embodiment, a single color of inkis employed; the color of the housing provides the contrast.

[0665] Numerous other micro-shaping and -texturing technologies cansimilarly be employed, as will be familiar to artisans in that field.

[0666] The earlier-described algorithm for generating the output gridpattern is exemplary, but a great many other encoding algorithms can beused. One employs N different frames of pseudo-random values (“−1” and“1”), where N is the number of bits in the binary payload. The frame canhave any size. An exemplary frame is an array of 128×128 cells. (Eachcell again is 250 microns on a side, resulting in a frame size of about0.8 cm×0.8 cm.) A composite frame is formed by summing selected ones ofthese frames, depending on the data payload. For example, if the datapayload is “1010,” then the first and third frames are summed(corresponding to the “1”s in the first and third bit positions). Thesecond and fourth frames can be left un-used, or can be subtracted fromthe just-formed sum for better signal-to-noise ratio. The resultingoutput grid pattern is implemented as a texture or printed pattern onthe housing, as above.

[0667] To extract the binary data payload from such a composite frame,correlation operations are performed between the composite frame andeach of the component N frames. Those component frames that exhibit ahigh correlation correspond to bit positions having a value of “1” inthe binary data payload.

[0668] Another class of encoding algorithms employs the binary datapayload as coefficients representing a pattern transformed to anotherdomain. For example, if the binary data payload consists of 16 bits,these bits can serve as 16 DCT coefficients, thereby uniquely defining a4×4 patch of “1” and “−1” cells. This patch can be replicated asnecessary to span the desired area on the housing. (The mapping betweenthe DCT and un-transformed domain yields the seeming randomization ofthe resulting pattern; no pseudo-random component is expresslyintroduced.)

[0669] To decode, the patch is transformed to the DCT domain, and theDCT coefficients provide the binary data payload.

[0670] In this and the foregoing embodiments, it is commonly desirableto provide some synchronization or calibration signal, so that thebeginning of the binary data payload can be uniquely identified, and soas to enable rotation-insensitive detection. Various such signals andrelated techniques are disclosed in the assignee's earlier-citedapplications and patents.

[0671] In addition to the encoding techniques particularly detailedabove, essentially any “digital watermarking,” “steganography,” or “datahiding” technique known in the literature can alternatively be used.While such techniques typically embed data into imagery, the sametechniques can likewise be applied to a “null” image to yield just adata embedding signal. (In systems that adaptively scale the watermarkenergy to image contents, the scaling function should be omitted sincethe “image contents” here are null.)

[0672] The References Cited section of this patent detail many suchalternative marking techniques. A search of the U.S. Patent Office'sweb-based search system, using keywords such as “watermark*” and“steganogr*” will reveal others. The artisan is assumed to be familiarwith the range of available watermarking/data hiding lsteganography art.

[0673] A detector system 20 suitable for use with the foregoingembodiments is shown in FIG. 3 and includes a hand-scanner 22 and acomputer 24.

[0674] The hand scanner is conventional and includes a linear lightsource 26 (e.g. an array of LEDs with associated lensing), acorresponding array of light detectors 28 (e.g. photodiodes), and A/Dcircuitry 34. The computer includes a microprocessor 30, a memory 32, anI/O port 36, and an output device 38.

[0675] The light source 26 illuminates a swath of the textured region,and the array of light detectors 28 generates analog signals related tothe reflected light. These analog signals are periodically sampled andconverted into digital form by the A/D converters 34, and the resultantdigital data is provided to the I/O port 36.

[0676] Stored in memory 32 of the computer are software instructionscausing the microprocessor 30 to perform a decoding operation on thedigital data provided to the I/O port 38. In exemplary arrangements, thesampled digital data is arrayed in the memory 30 and analyzed inaccordance with a decoding algorithm. (The decoding algorithm istailored to correspond to the encoding technique by which the texturewas formed.) The decoding operation outputs the originally-encodedbinary data payload.

[0677] The binary data payload can be directly presented for viewing,but is preferably first “interpreted.” To interpret the payload, thecomponent fields are matched with corresponding textual descriptions(such as those presented above) using a look-up-table stored in memory30, or using an associated (local or remote) database 40. The resultingtextual descriptions are then output to the operator, using either ascreen display, an audio annunciator, etc. The decoded data is alsodesirably entered into an inventory control system 42, noting the date,time, and location of scanning.

[0678] The foregoing discussion focused on marking of integrated circuitpackaging, and use of such marking to prevent mislabeling of products.However, the disclosed techniques are likewise applicable to any otherarticle whose surface can be textured, and to applications where truecounterfeiting (rather than mis-labeling) is at issue.

[0679] Counterfeiting of commercial goods is a longstanding problem, asevidenced by sidewalk vendors of “Rolex” watches. Surfaces of watches,and other articles, can be inconspicuously textured to encodeauthentication data. At ports of entry, U.S. Customs officials can usehand-held scanners to confirm that the texturing encodes the expecteddata. To guard against artful reproduction of texture markings found onauthentic goods, the encoded data can include a date beyond whichimportation should not be permitted. Customs officials encounteringarticles with expired dates can seize the goods pending aninvestigation. (Such encoding of expiration date data in hidden embeddeddata finds other applications as well.)

[0680] Texturing can also be applied to automotive components, toidentify or authenticate same. For example, on new cars, vehicleidentification numbers (presently printed on a dashboard plate, and onvarious components) can be encoded in texture form and inconspicuouslyapplied throughout the vehicle, including etched onto glass surfaces insmall patches. (The provision of such information in machine-readableform on the exterior of the vehicle enables various downstream scanneddata-based applications.)

[0681] As will be apparent from the foregoing, the concepts detailedabove are not limited just to integrated circuits, but instead can beapplied to essentially any article—each with its own set of attendantbenefits.

[0682] Having described and illustrated the principles of our inventionwith reference to various embodiments thereof, it will be recognizedthat the invention can be modified in arrangement and detail withoutdeparting from its basic principles.

[0683] For example, while the above-described embodiments applied thetexture marking to the article itself, some applications may be betterserved by so-marking a container in which the article is distributed.This can be advantageous, for example, when the item is textured in aidof an inventory control system—the item can be accurately identified forinventory without opening the container.

[0684] In view of the many possible embodiments to which the principlesof our technology may be put, it should be recognized that the detailedembodiments are illustrative only and should not be taken as limitingthe scope of our invention. Rather, we claim as our invention all suchembodiments as may come within the scope and spirit of'the followingclaims and equivalents thereto.

APPENDIX B Authentication of Physical and Electronic Media Objects UsingDigital Watermarks Related Application Data

[0685] This patent application claims priority to U.S. Provisionalpatent applications 60/198,138 filed Apr. 17, 2000, and 60/198,849 filedApr. 21, 2000, which are hereby incorporated by reference. Thisapplication is a continuation in part of U.S. patent application Ser.No. 09/503,881, filed Feb. 14, 2000, which is a continuation in part ofapplication Ser. No. 09/186,962, filed Nov. 5, 1998, which is acontinuation of application Ser. No. 08/649,419, filed May 16, 1996,(now U.S. Pat. No. 5,862,260), which is a continuation in part ofapplication Ser. No. 08/637,531, filed Apr. 25, 1996, (now U.S. Pat. No.5,822,436), which is a continuation in part of application Ser. No.08/512,993 filed Aug. 9, 1995, (abandoned in favor of FWC 08/763,847,now issued as U.S. Pat. No. 5,841,886), which are hereby incorporated byreference.

Technical Field

[0686] The invention relates to encoding and decoding an auxiliarysignal into a media signal (e.g., image, audio and video), such that theauxiliary signal is substantially imperceptible in the resulting signal,yet recoverable by an automated decoding process.

Background and Summary

[0687] Digital watermarking is a process for modifying media content toembed a machine-readable code into the data content. The data may bemodified such that the embedded code is imperceptible or nearlyimperceptible to the user, yet may be detected through an automateddetection process. Most commonly, digital watermarking is applied tomedia such as images, audio signals, and video signals. However, it mayalso be applied to other types of data, including documents (e.g.,through line, word or character shifting), software, multi-dimensionalgraphics models, and surface textures of objects.

[0688] Digital watermarking systems have two primary components: anembedding component that embeds the watermark in the media content, anda reading component that detects and reads the embedded watermark. Theembedding component embeds a watermark pattern by altering data samplesof the media content. The reading component analyzes content to detectwhether a watermark pattern is present. In applications where thewatermark encodes information, the reader extracts this information fromthe detected watermark.

[0689] One challenge to the developers of watermark embedding andreading systems is to ensure that the watermark is detectable even ifthe watermarked media content is transformed in some fashion. Thewatermark may be corrupted intentionally, so as to bypass its copyprotection or anti-counterfeiting functions, or unintentionally throughvarious transformations that result from routine manipulation of thecontent. In the case of watermarked images, such manipulation of theimage may distort the watermark pattern embedded in the image.

[0690] The invention provides watermark structures, and relatedembedders, detectors, and readers for processing the watermarkstructures. In addition, it provides a variety of methods andapplications associated with the watermark structures, embedders,detectors and readers. While adapted for images, the watermark systemapplies to other electronic and physical media. For example, it can beapplied to electronic objects, including image, audio and video signals.It can be applied to mark blank paper, film and other substrates, and itcan be applied by texturing object surfaces for a variety ofapplications, such as identification, authentication, etc. The detectorand reader can operate on a signal captured from a physical object, evenif that captured signal is distorted.

[0691] The watermark structure can have multiple components, each havingdifferent attributes. To name a few, these attributes include function,signal intensity, transform domain of watermark definition (e.g.,temporal, spatial, frequency, etc.), location or orientation in hostsignal, redundancy, level of security (e.g., encrypted or scrambled).When describing a watermark signal in the context of this document,intensity refers to an embedding level while strength describes readinglevel (though the terms are sometimes used interchangeably). Thecomponents of the watermark structure may perform the same or differentfunctions. For example, one component may carry a message, while anothercomponent may serve to identify the location or orientation of thewatermark in a combined signal. Moreover, different messages may beencoded in different temporal or spatial portions of the host signal,such as different locations in an image or different time frames ofaudio or video.

[0692] Watermark components may have different signal intensities. Forexample, one component may carry a longer message, yet have smallersignal intensity than another component, or vice-versa. The embedder mayadjust the signal intensity by encoding one component more redundantlythan others, or by applying a different gain to the components.Additionally, watermark components may be defined in different transformdomains. One may be defined in a frequency domain, while another may bedefined in a spatial or temporal domain.

[0693] The watermark components may be located in different spatial ortemporal locations in the host signal. In images, for example, differentcomponents may be located in different parts of the image. Eachcomponent may carry a different message or perform a different function.In audio or video, different components may be located in different timeframes of the signal.

[0694] The watermark components may be defined, embedded and extractedin different domains. Examples of domains include spatial, temporal andfrequency domains. A watermark may be defined in a domain by specifyinghow it alters the host signal in that domain to effect the encoding ofthe watermark component. A frequency domain component alters the signalin the frequency domain, while a spatial domain component alters thesignal in the spatial domain. Of course, such alterations may have animpact that extends across many transform domains.

[0695] While described here as watermark components, one can alsoconstrue the components to be different watermarks. This enables thewatermark technology described throughout this document to be used inapplications using two or more watermarks. For example, some copyprotection applications of the watermark structure may use two or morewatermarks, each performing similar or different function. One mark maybe more fragile than another, and thus, disappear when the combinedsignal is corrupted or transformed in some fashion. The presence or lackof a watermark or watermark component conveys information to thedetector to initiate or prohibit some action, such as playback, copyingor recording of the marked signal.

[0696] A watermark system may include an embedder, detector, and reader.The watermark embedder encodes a watermark signal in a host signal tocreate a combined signal. The detector looks for the watermark signal ina potentially corrupted version of the combined signal, and computes itsorientation. Finally, a reader extracts a message in the watermarksignal from the combined signal using the orientation to approximate theoriginal state of the combined signal.

[0697] There are a variety of alternative embodiments of the embedderand detector. One embodiment of the embedder performs error correctioncoding of a binary message, and then combines the binary message with acarrier signal to create a component of a watermark signal It thencombines the watermark signal with a host signal To facilitatedetection, it may also add a detection component to form a compositewatermark signal having a message and detection component. The messagecomponent includes known or signature bits to facilitate detection, andthus, serves a dual function of identifying the mark and conveying amessage. The detection component is designed to identify the orientationof the watermark in the combined signal, but may carry an informationsignal as well. For example, the signal values at selected locations inthe detection component can be altered to encode a message.

[0698] One embodiment of the detector estimates an initial orientationof a watermark signal in the multidimensional signal, and refines theinitial orientation to compute a refined orientation. As part of theprocess of refining the orientation, this detector computes at least oneorientation parameter that increases correlation between the watermarksignal and the multidimensional signal when the watermark ormultidimensional signal is adjusted with the refined orientation.

[0699] Another detector embodiment computes orientation parametercandidates of a watermark signal in different portions of the targetsignal, and compares the similarity of orientation parameter candidatesfrom the different portions. Based on this comparison, it determineswhich candidates are more likely to correspond to a valid watermarksignal.

[0700] Yet another detector embodiment estimates orientation of thewatermark in a target signal suspected of having a watermark. Thedetector then uses the orientation to extract a measure of the watermarkin the target. It uses the measure of the watermark to assess merits ofthe estimated orientation. In one implementation, the measure of thewatermark is the extent to which message bits read from the targetsignal match with expected bits. Another measure is the extent to whichvalues of the target signal are consistent with the watermark signal.The measure of the watermark signal provides information about themerits of a given orientation that can be used to find a better estimateof the orientation.

[0701] Another aspect of the invention is a method for encodingauxiliary data into a host signal. This method computes a contentspecific message dependent on the host signal, encodes the contentspecific message into a watermark signal, and embeds the watermark inthe host signal such that the watermark signal is substantiallyimperceptible in the host signal. One specific implementation embedsdata representing salient features of the host signal into thewatermark. For example, for photo IDs, the method embeds the spatiallocation of salient features of the photo into the watermark.

[0702] Another implementation computes a semi-sensitive hash of the hostsignal, such as a low pass filtering of the signal, and embeds the hashinto the watermark.

[0703] Another aspect of the invention is a method for authenticating amedia object. This method transforms a media signal to a frequencydomain comprising an array of frequency coefficients. It selects a firstset of frequency coefficients, and alters the selected first set offrequency coefficients so that values of the coefficients in the setcorrespond to a pattern. The pattern of the media signal isauthenticated by comparing a pattern of the values of the frequencycoefficients in the set with an expected pattern.

[0704] In one implementation, pairs of coefficients are modified toencode a delta pattern. For each coefficient in the first set, themethod selects a corresponding coefficient in a corresponding set, andchanges values of the coefficients in the first set and thecorresponding coefficients in the corresponding set such that thedifferences between the coefficient values in the first set and thecorresponding set form a desired delta pattern. This delta pattern maybe a pseudorandom number generated from a key number. The key number maybe derived from the media signal, such as a hash of the media signal.Alternatively, it may be a user or object identifier number associatedwith the media signal.

[0705] Further features of the invention will become apparent from thefollowing detailed description and accompanying drawings.

Detailed Description

[0706] Content and User Dependent Watermarks

[0707] One way to make the watermark more robust against maliciousattack is to make the watermark signal dependent on some attribute ofthe object into which it is to be embedded. For instance, the watermarkkey that specifies how or where the watermark is inserted in the objectcan be make dependent on the object carrying the watermark. Thisapproach makes it difficult to copy or forge the watermark in anotherobject without having the original object or knowing the attribute ofthe host that the watermark is dependent on. The watermark key may bedependent on some attribute or attributes of the media signal in whichthe watermark is to be embedded, such as the pixel values of an image orthe audio sample values of an audio signal.

[0708] Alternatively, it may be dependent on some attribute that isuniquely assigned to the object. For example, the object may be assignedwith an identifier that is uniquely associated with the owner or user ofthe object, such as the owner of a watermarked identification card. Thisidentifier, being uniquely associated with a particular owner, may beused to generate a watermark key. If the watermark is copied or forgedinto an object used by another person, then that person will not be ableto provide a watermark key that enables a successful decode of thewatermark.

[0709] One way to implement a user dependent key is to use a person'sname (or other unique attribute of that person) to create a watermarkkey. The key may be necessary to decode a scrambled watermark message,or to locate the message in the watermarked object. The key may specifythe temporal or spatial location of the watermark. It may specify thetransform coefficients (e.g., frequency domain coefficients) where theobject has been altered to encode the watermark.

[0710] The name or other attribute of the person may be converted to awatermark key using a predetermined function. Alternatively, the name orother attribute may be used to look up a watermark key from a database(e.g., user's name or unique identifier number is linked to a specificwatermark key to be used to extract a watermark from the watermarkedobject). If the watermark decoder is unable to read the watermark usingthe key derived in this manner, then it indicates that the person is notthe valid owner or user of the watermarked object. This approach isparticularly suited for checking the validity of a photographicidentification document that has been watermarked using a user dependentkey.

[0711] Another approach to make the watermark more robust is to embed awatermark that is content dependent so that is difficult to forge orcopy from another object. Content dependent refers to a watermark signalthat is dependent on a host signal into which it is embedded. One way tomake the watermark content dependent is to transform at least a portionof the host signal to a transform coefficients in a selected transformdomain, and then alter one or more of the coefficients so that theycorrespond to a value of a desired symbol. The symbol is selected from apredetermined symbol alphabet in each symbol has one or more valuesassociated with it. The transform coefficients are modified so that theyhave a value corresponding to the desired symbol to be encoded. Thevalue to which the transform coefficients are modified is picked basedon the desired symbol to be encoded and the value associated with thatsymbol that requires the smallest change to the host signal. Thisapproach is a form of non-linear watermark encoding.

[0712] One example of the approach in the previous paragraph for imageobjects is to perform a wavelet decomposition of at least a portion ofthe image into subbands. The pattern of coefficients in one or more ofthe subbands is altered to correspond to a pattern associated with asymbol to be encoded. This process may be repeated to encode severalsymbols. In the decoder, the same wavelet decomposition is computed forthe watermarked image and the resulting patterns compared with thepatterns in the symbol alphabet. For each pattern, the symbol with theclosest matching pattern is determined to be the one that has beenencoded. A similar approach can be performed on other media types suchas audio and video, using a wavelet transform or other types oftransforms like an FFT DCT, etc.

[0713] One particular technique for adapting the watermark signal to ahost image signal in which it is embedded is to replace the magnitude(phase is left in tact) of one set of Fourier coefficients,

[0714] S₁=(C₁, C₂, . . . C_(n)), by an amount:

[0715] (Avg₁+delta₁, Avg₂+delta₂, . . . Avg_(n)+delta_(n)),

[0716] and adjust a corresponding set of Fourier coefficients:

[0717] S₁′=(C₁′, C₂′, . . . , C_(n)′) by an amount (Avg₁-delta₁,Avg₂-delta₂, . . . Avg_(n)-delta_(n)). Where Avg₁=(C₁+C₁′)/2,Avg₂=(C₂+C₂′)/2, and Avg_(n)=(C_(n)+C_(n)′)/2.

[0718] The array of delta values can be any secret pattern, such as apseudorandom number generated by seeding a pseudorandom number generatorwith a secret key seed number. The key seed number itself may be derivedfrom features of the host signal. In fact, the mathematical relationshipbetween the coefficients in one set and the corresponding coefficientsin another set may be any of a variety of mathematical relationships.Changes to different coefficients in the set may be made according todifferent mathematical relationships. For example, the amount of change(e.g., delta in this example) may vary as a linear or non-linearrelationship of the frequency. Further, the approach may be repeated onadditional sets of coefficients S₂, S₃, . . . S_(n). Each set may usethe same or different key for the delta pattern. Different types ofmessages and authentication data may be encoded by applying the methodto certain ones of the sets of coefficients, and by varying the deltapatterns per each set of coefficients to correspond to desired messagesymbols to be encoded.

[0719] In one implementation, the coefficients in sets S₁ and S₁′ areselected as shown in FIG. 21. Each coefficient in set S₁ is in a firstquadrant of the Fourier transform domain of the host image, whilecorresponding coefficients in set S₁′ are in a second quadrant. If thesetwo quadrants were folded together along a line separating the twoquadrants, the corresponding coefficients in S₁ and S₁′ would overlap.

[0720] After completing the watermark embedding process, the differencebetween the corresponding sets of coefficients is a known pattern,(2delta₁, 2delta₂, . . . 2delta_(n)).

[0721] At the detection stage, the detector computes the differencebetween at least a subset of the corresponding sets of coefficients,possibly after re-aligning the data to compensate for geometricdistortion of the captured image relative to the image at the time ofwatermark embedding. The differences are then correlated with theintended pattern (delta₁, delta₂, . . . delta_(n)). If the correlationcoefficient is less than a threshold, the captured image is deemed notto be authentic (e.g., a forgery or counterfeit).

[0722] By making the watermark content dependent using a non-linearencoding scheme, it is more difficult for the watermark attacker toforge or copy the watermark from a different object without detailedknowledge of the encoding process. Even if the encoding process isdeduced in whole or in part, the watermark message may be scrambled sothat copying or forging the watermark will be ineffective. For example,the watermark message may be scrambled in a manner that is dependent onthe name of the valid owner of the object. Alternatively, the watermarkmessage may be scrambled in a manner that is dependent on the signalcontent in which the watermark is embedded.

[0723] Yet another approach is to use content specific attributes of awatermark derived at the time of encoding to authenticate the watermarkin the decoding process. After the encoder has completed encoding awatermark into an object, it analyzes the watermarked object and derivesa characteristic or set of characteristics that describe attributes ofit. This attribute can be a characteristic signal manifested in atransform domain or in the native domain of the watermarked signal. Forexample, the attribute may be the location or location of frequencycoefficients that have signal energy above a given level. It may be anidentifier of a color and a corresponding range of watermark signalstrength in that color. For an image object, this characteristic may bemeasured by printing the watermarked image, scanning the image back to adigital domain, and then computing the characteristic. Next, thecharacteristic is stored in a database entry that is referenced via adatabase index in the watermark message. At decoding time, thecharacteristic is re-computed by scanning the watermarked image. Thecharacteristic computed at decoding time is then matched with thecharacteristic stored in the database to determine whether it issufficiently close to the stored characteristic. If so, it is deemedvalid; otherwise, it is rejected.

[0724] Using Content Dependent Watermark Messages

[0725] Another way to counter attacks is to encode a content specificmessage into the watermark. At encoding time, a content specific messageis derived from the host signal into which the watermark message is tobe embedded. It is then included as at least part of the message that isencoded into the watermark. At decoding, the decoder derives the contentspecific message from the signal suspected of containing a validwatermark. It then decodes the watermark and compares the contentspecific message extracted from the watermark with the content specificmessage derived from the suspect signal. If the two are not within apredetermined tolerance of each other, then the decoder deems thewatermark to be invalid.

[0726] The content specific message may be computed in several ways. Itshould be relatively insensitive to routine processing of thewatermarked signal. For images, the content specific message shouldremain substantially unchanged through D to A and A to D conversion,compression/decompression, noise addition and small geometrictransformations. An image hash may be used as the content specificmessage, but it needs to be relatively insensitive to typicalmanipulation of the watermarked image. One form of semi-sensitive hashis a low pass filter of the image or a portion of it. The low passfiltered image can then be hashed into a number that is inserted intothe message. An example of a low pass filter is to use the mostsignificant bits of at least a selected part of the image.

[0727] Another content dependent message is a message derived based onsalient features in the content. For photographic images onidentification documents, the salient features may be the location ofthe eyes, nose or mouth in the photo of the document holder, or therelative location of these features. This location data (e.g.,coordinates or hash of the coordinates) can be converted into a numericmessage, which is encoded into the watermark embedded in thephotographic image. If the watermark is forged or copied into anotherimage, then the content specific message in the watermark is unlikely tobe within predetermined tolerances of the content specific messagecomputed from the image.

[0728] 7.0 Identification Documents

[0729] Identification documents can be enhanced by using digitalwatermarks. This section describes processing of the ID document on theissuing and inspection sides to combat counterfeiting and forgery.

[0730] ID Document Issuing Side

[0731] On the issuing side, a watermark encoder embeds a digitalwatermark in a digital photo (or other image to be placed on the IDdocument). The watermark carries a piece of multi-bit identifying data.This data can optionally link to data on the card.

[0732] Preferably, the embedding process is tuned for survival throughprinting and scanning. A detailed description of such a process isprovided above.

[0733] The watermark encoder also embeds in a second version of thedigital photo the same piece of identifying data. The second image maybe compressed with a technique such as JPEG still image compression, oroptionally down-sampled to reduce storage requirements. The processes ofdown-sampling and compression may be used together or singly. Theembedding process in the second image may be less tuned to maintainimage quality and more tuned to survive manipulation such as imagecompression, down-sampling, or other transformation that it willundergo.

[0734] The first image is printed on the identification document (e.g.,ID card) using personalized printing methods that could range fromink-jet printing to laser engraving.

[0735] The second image is encoded on the identification document insome portable storage media device or machine readable code such as amagnetic stripe, a 2D barcode, transistor, RF tag, magnetic ink, etc.

[0736] Alternatively, it is encoded in a database accessible to IDdocument inspection systems. In such case, the ID document is linked tothe second image via an identifier that serves as a database key to adatabase entry storing the second image. The inspection system may beequipped with the database as well as a database manager for retrievingimages via their respective keys. Alternatively, it may access thedatabase through a wire or wireless connection using standard networkcommunication protocols (e.g., via a network connection, which mayinclude a wire and/or wireless connection). The identifier may beembedded in the ID document in a watermark or some other storage deviceor machine readable code, such as the examples listed above.

[0737] ID Document Inspection Side

[0738] At inspection, a watermark decoder recovers data encoded in thewatermark from the printed image. Suitable implementations of awatermark decoder for detecting and reading a watermark from an imagecaptured from a document are described above.

[0739] The second version of the image is retrieved from the storagedevice or machine readable code on the ID document or from remotestorage, and decompressed (if necessary). Next, the watermark decoderrecovers the watermark from this second image.

[0740] The pair of embedded identifiers in the first and second imagesprovide a machine-readable link between the two images (e.g., the photoon the document, and the second version encoded in the document orstored elsewhere). The images themselves provide a human viewableconfirmation that the image on the identification document has not beentampered with.

[0741] As an additional layer of security, the embedded data in thefirst and second images may be a piece of personal information, such asa number uniquely associated with the valid bearer of the ID document.This enables the ID document system to create a verification trianglebetween the bearer and the two images, as well as the one image to theother.

[0742] A possible variation is to store different but relatedidentifiers in the two images. One example is the start and end of thedocument number. Together, these related identifiers get compared to acorresponding identifier on the ID document to check validity of the IDdocument. To validate the ID document, the inspection device needs torecover the embedded data from the image printed on the document and thesecond image.

[0743] Another variation is to use some functionf( ) where f(documentnumber) yields some fairly unique x,y pair of numbers. The number x isencoded in a watermark in the printed image and the number y is encodedin a watermark in the image (encoded into the document or stored in adatabase). By employing a cryptographic function to generate the uniquenumber pair, it is possible to combat the threat of a counterfeiterlifting a watermark from the document and successfully reproducing it ona substitute photo.

[0744] Some examples of cipher algorithms for implementing acryptographic function that generates a pair of numbers include RSA,DES, IDEA (International Data Encryption Algorithm), skipjack, discretelog systems (e.g., El Gamal Cipher), elliptic curve systems, cellularautomata, etc.

[0745] The watermark may be used to detect block-level alterations inthe printed image. In particular, the watermark may be replicated in asimilar fashion in blocks of the image to be printed on the ID, and theimage kept separately (either encoded in the document or stored in adatabase). By comparing the watermark extracted from correspondingblocks in both images, the inspection device can detect alterations tothe printed image.

[0746] Concluding Remarks

[0747] Having described and illustrated the principles of the technologywith reference to specific implementations, it will be recognized thatthe technology can be implemented in many other, different, forms.

[0748] The particular combinations of elements and features in theabove-detailed embodiments are exemplary only; the interchanging andsubstitution of these teachings with other teachings in this and theincorporated-by-reference patents/applications are also contemplated.

APPENDIX C ASSOCIATING DATA WITH IMAGES IN IMAGING SYSTEMS Field of theInvention

[0749] The invention relates to still and moving image capture devices,and more particularly relates to associating auxiliary data with imagescaptured in such devices.

Background and Summary of the Invention

[0750] Prior art still image and movie cameras memorialized image dataon media (e.g. film or magnetic tape), but did not include provision tostore other useful information.

[0751] Some years ago, still-image cameras with the capability to insertvisible date text in a corner of the image frame became available,solving the problem of trying to recall the dates that photos ofinterest were taken.

[0752] More recently, the Advanced Photo System provided a magneticencoding medium on the back of photographic film, permitting additionalinformation to be stored (e.g., exposure information, whether flash wasused, desired print size, etc.).

[0753] With the growing popularity of digital storage of image data, itwould be helpful if auxiliary data could be stored in association with aphoto. Such storage is now possible in the header fields of certainpopular data formats, but such data can be lost if the file is convertedto another format.

[0754] In one embodiment of the invention, auxiliary data about an imageis steganographically encoded (“watermarked”) within the image itself.By integrating the image and the associated data in this fashion, theauxiliary data cannot become separated from the image. A great number ofuseful systems are thereby reliably enabled.

[0755] In another embodiment, a reference to auxiliary data issteganographically encoded within the image. The auxiliary data isstored in a metadata database that maps the reference encoded in animage to its corresponding metadata. Various imaging applicationprograms and devices can access the metadata by extracting the referencefrom an image, and querying the database for metadata corresponding tothe reference. The metadata database may be implemented in a networkserver to make metadata readily available to devices and applicationsdistributed throughout a computer network.

[0756] The steganographic link may be used to retrieve image metadataacross imaging systems. In one configuration, for example, imagingsystems have metadata servers that maintain metadata for a collection ofimages. The metadata server is responsible for responding to requestsfor metadata associated with images in its collection. In the event thata metadata server does not have metadata associated with a particularimage, it forwards the reference extracted from the image to a metadatarouter, which in turn, re-directs the request to the appropriatemetadata server.

[0757] The steganographic data may be embedded in an image within animage capture device, or elsewhere. In one embodiment, thesteganographic data is embedded in the image as part of the process ofuploading it from the camera. In another embodiment, an image capturedevice embeds steganographic data in the image before uploading it to anexternal device.

[0758] The foregoing and additional features and advantages will be morereadily apparent from the following detailed description, which proceedswith reference to the accompanying drawings.

Brief Description of the Drawings

[0759]FIG. 1 is a block diagram illustrating an example of a digitalcamera.

[0760]FIG. 2 is a block diagram illustrating various connectivityconfigurations for transferring data to and from an image capturedevice.

[0761]FIG. 3 is a diagram illustrating an application of steganographiclinks to metadata in images.

[0762]FIG. 4 is a diagram illustrating the use of steganographic linksto access metadata from different imaging systems.

Detailed Description

[0763] Introduction

[0764] As noted above, there are many applications for associatingauxiliary data with images captured in an image capture device. A shortlist of these applications include:

[0765] managing copyrights,

[0766] authenticating images,

[0767] describing objects within an image,

[0768] describing the context of the image (time, place, subject, cameraproperties),

[0769] facilitating image searching based on content,

[0770] uploading and organizing images from cameras in photo librarydatabases,

[0771] sharing images over networks, such as the Internet

[0772] linking derivative images to originals.

[0773] The following sections describe various implementations of imagecapture devices and related systems that associate various forms of datawith images. The sections discuss associating data in images usingsteganographic and other techniques. Steganographic methods can encodedata in an image, including identifiers and references that associatethe image with additional data stored outside the image itself. In someapplications, the capacity of the images to hold a steganographicsignal, such as an imperceptible watermark, is sufficient to store thedata associated with the image. In other applications, it is useful tostore additional data elsewhere, and refer to it through a referencehidden in the image.

[0774] One way to associate data with an image is to store the data inthe image container (e.g., a file), but outside the image. Yet anotherway is store the data in a location external to the image file, andcreate an association between the image file and the external data. Inthis case, the image may be associated with the external data via areference encoded in the image itself or in the image file that refersto the external data. Data associated with a digital object, such as animage, is sometimes referred to as “metadata.”

[0775] In some applications, the image capture device enables users tospecify the types of data as well as specific items of data to beassociated with images captured in it. The data “type” describes what adata item represents, while the data “item” refers to the actual dataassociated with the image. Some examples of data types include the time,place, and subject of the image, and examples of corresponding dataitems include: 12:30 PM, Times Square, Mom (corresponding to data typesof time, place and subject).

[0776] The user may specify the data types through the user interface ofthe image capture device, or through the user interface of an externaldevice or system, which in turn, communicates the desired data types tothe image capture device. Camera user interface components, such asbuttons or voice recognition modules, enable the user to change settingsof the device anywhere, without the need to link it to external device.Data entry and device configuration through external devices, such as apersonal computer, personal digital assistant or phone, provides anumber of advantages, including remote control of the camera, access tomore user friendly user interfaces, and more powerful data manipulationand storage than is capable on the camera.

[0777] In addition to specifying the data type, the user may alsospecify actual data items to be associated with images. Again, the usermay specify the data items through the user interface of the imagecapture device, or through the user interface of an external device. Incases where the user supplies data items to the external device, theseitems may be downloaded to a storage device on the image capture device,associated with images at the time of or after image capture, and latertransferred from the device along with the associated images to externalstorage. Alternatively, the data items may be kept in storage externalto the image capture device and associated with selected images byreference, such as through an identifier that matches an identifierhidden in the image. For example, the camera or some other imagemanagement system can insert a stegranographic link (e.g., in an imagewatermark) that associates the image with the desired data items.

[0778] Image Capture Devices and Connectivity to External Devices andSystems

[0779] The methods and systems for associating data with images can beimplemented in many different types of image capture devices, includingconventional film cameras, digital cameras and scanners. To simplify thediscussion, the following description uses digital cameras as an exampleof one type of image capture device.

[0780] Digital Cameras

[0781] The design of digital cameras is well understood to those skilledin the art, so is not belabored here. FIG. 1 shows an example of acamera 10, including its user interface 12 and its internalarchitecture.

[0782] The camera 10 includes an optical system 14, an image sensor 16,and an image formatter 18. The optical system contains the camera'slens, focus control, and other optics components that control thetransfer of light to the camera's sensor 16. The sensor is comprised ofan array of discrete sensor elements arranged in clusters sensitive tothree primary colors (e.g., red, green, blue). Two common types ofsensors are CCD and CMOS sensors. The image formatter includes an analogto digital converter to convert signals from the sensor elements todigital form. It also includes a color space converter to map the signalinto a desired color space, such as RGB or YUV. The formatter transformsthe image signal into a form suitable for further processing and storageand stores it in the camera's memory subsystem.

[0783] Because the specific interconnect varies with the implementation,FIG. 1 depicts a general interconnect 22 that represents the data andcontrol path among various components in the camera. In addition to theimage capture components described above, the camera includes aprocessing unit 22, a memory subsystem 20, and various I/O devices. Thecamera may include one or more processing devices, such as amicroprocessor, and a DSP.

[0784] The processing unit executes an operating system, such as VxWorksreal time embedded operating system in the Digita Operating Environmentfrom Flashpoint, Inc., or Windows CE from Microsoft Corporation.Application programs supporting functions described throughout thisdocument may be developed using software development environmentsdesigned for these and other commercially available operating systems,such as Tornado Tools from Wind River.

[0785] A steganographic embedder may be implemented as an applicationprogram that executes on the processing unit, or in special purposehardware that has access to the memory subsystem.

[0786] The memory subsystem 20 includes a combination of ROM, RAM, andremovable storage devices such as a flash memory card.

[0787] The I/O devices include a display 24, and input controls 26. Theupper portion of FIG. 1 depicts an example of the rear panel of thecamera showing user interface components on the camera. The panel hasbuttons and switches 30, 32, 34 that control operating modes of thecamera and display modes on the display screen 36. It also includesscroll buttons 38-44 that enable the user to scroll through options onvarious display screens.

[0788] The camera is equipped with one or more external interfaces totransfer images, image related data, and operating parameters to andfrom external devices. The type and number of interfaces for externalconnectivity vary from camera to camera, and include:

[0789] ports 50 for wire connections to external devices such as serialports, USB ports, parallel ports, PCI, Firewire or Ilink ports (IEEE1394 and USB2 ports), and

[0790] transceivers and receivers 52 for wireless connections such as aninfrared transceiver, RF transceivers, FM receivers, etc.

[0791] The camera may also include a cellular or conventional modem 54for transferring data to and from a telephone network. In addition totransferring images and data via connections to external devices, thecamera can also receive and send data via a removable memory device.

[0792] Connectivity to External Devices

[0793] The camera's connectivity features enable it to upload images anddata to external devices, and enables external devices to downloadoperating parameters and image related data (e.g., image metadata).There are numerous connectivity configurations, including wired andwireless connections to stand-alone and networked devices.

[0794]FIG. 2 is diagram illustrating some examples of configurations forconnecting the camera with external devices. As shown, the camera 100may connect directly to a communication network 102, like the Internet,it may connect to a networked device such as a personal computer ortelephone (104), and finally, it may connect to a stand-alone device106.

[0795] In order to connect to a network the camera may have a cellularor conventional modem or a network adapter. It may be connected to anetworked or stand-alone device via a communication interface such asthe ones mentioned in the previous section.

[0796]FIG. 2 highlights some of the connectivity scenarios made possibleby these connectivity components in the camera. The connectivityscenarios can be grouped into two principle categories: 1) transferringdata and operating parameters to the camera; and 2) uploading images,data associated with the images, and operating parameters from thecamera.

[0797] Transfers to the Camera

[0798] One configuration is to transfer the desired information througha direct connection to the camera, such as through the camera's serialport, USB port, parallel port, Firewire or Ilink port, infraredtransceiver port, or RF transceivers port In this scenario, the sourceof the information may be a networked or stand-alone device.

[0799] Another configuration is through an indirect connection from thesource of the information to the camera. The indirect connection mayinclude one or more hops through a wired or wireless connection. Anexample of a wired connection is where the camera 100 is connected to anetwork 102, such as the Internet, and another device, such as a server108, sends the information through the network to the camera, which isconnected to the network. A useful application of this configuration iswhere a user of a client computer 110 designates operating parametersand metadata through an interactive web site. The web server 108, inturn, transfers the operating parameters and metadata to the camerathrough the network 102.

[0800] Another related configuration is where a user specifies desiredparameters to a server computer 112, which in turn, sends the data tothe camera through a wireless connection or broadcast. One example of awireless connection is through wireless network to a cellular modem inthe camera Example of a wireless broadcast include transmitting the datafrom the server to a FM transmitter (e.g., the radio tower 114) orsatellite transmitter (116, 118) to a compatible receiver in the camera.

[0801] Uploading Data from the Camera

[0802] Many of the same configurations outlined above for transferringdata to the camera apply to uploading data from the camera as well.However, as practical matter, cameras have more limited resources toprocess and transmit data. One way to address these limitations is toincorporate into the camera a high bandwidth interface to transfer largeamounts of data, such as the images and their related metadata, as wellas a low bandwidth interface for transferring smaller packages of data,such as an identifier or set of control signals. The high bandwidthinterface may be implemented using a port that can communicate largeamounts of data efficiently, without unduly complicating the circuitryon the camera. Examples of such ports include a USB, firewire or Ilinkport (IEEE 1394 and USB2). The low bandwidth interface may be used toimplement a wireless signal transmitter, such as cellular modemtransceiver, or other wireless signal transmitter, such as FM, RF,infrared, etc.

[0803] Image Data Configuration

[0804] As noted above, there are two principle categories of methods forconfiguring the camera to specify its operating parameters, and tospecify the types of auxiliary data to be associated with images: 1)through the user interface of the camera; and 2) through an externaldevice. The following sections provide examples of devices forconfiguring the camera and methods of operating these devices.

[0805] Camera UI

[0806] The camera UI may be implemented with many different combinationsof input and output devices. The input devices may be implemented usingcombinations of hardware controls, such as buttons, switches, dials,cursor control devices, etc., and soft controls, such as touch screens,soft buttons, scroll bars, and check boxes displayed on a displaydevice. The camera may also be configured to receive voice input througha microphone, voice codec, and voice recognition hardware and software.

[0807] Similarly, the output devices may produce visual and/or audiooutput. For example, the camera may have a display screen, with orwithout support for video output. In addition, it may have audio output,and allow for playback of voice instructions, and output of a text tospeech synthesis system.

[0808] In the example depicted in FIG. 1, the user manipulates the userinterface (FIG. 1) to specify the data that is to be associated with apicture or series of pictures. The user may specify the data type to beassociated with a picture, and then allow the camera to supply theactual data from its storage or from an internal device (e.g., clock forthe time, GPS for the location, etc.). The data in the storage devicemay, for example, be downloaded to the camera from an external source.Additionally, the user may specify the actual data to be associated witheach picture, either in advance, or as he snaps the pictures. Forexample, the photographer might enter his name, and the names of thepeople or things in the picture. The photographer may opt to enter thedata once, and then have it linked to several pictures in a virtualroll. A virtual roll is a set of images that constitutes a “roll.”

[0809] In one particular implementation depicted in FIG. 1, the userinterface accepts user input via the buttons 30-34. Using known UItechniques, the user can use the scroll buttons 38-44) to scroll througha list of selections displayed on display screen 36 until a desiredselection is presented. Once the list has been scrolled to the desiredentry, the user can actuate a second button (e.g., 32-34) to effect thatselection. The data types associated with an image or set of images canbe of various classes. One class can identify the photographer, anotherclass can identify the subject, etc.

[0810] For the class of photographers, the scrollable list of selectionscan include a default list of descriptors (e.g., Mom, Dad, Child1,Child2, #1, #2, etc.), supplemented (or replaced if desired) by a listthat is customized by the owner of the camera (e.g., Bill, Kristen,Hannah, David, etc.).

[0811] The class of subjects can similarly include a default list (e.g.,Birthday, Vacation, Anniversary, Wedding House, Car, Pet, etc.) and/or acustomized list (Uncle Harry, Yellowstone, Mushrooms, Seascapes, etc.)The user interface for selection of subjects may permit selection ofseveral subjects—providing alternate descriptors for an image.

[0812] A descriptor selected by the user can be used to encode thepicture just-snapped, or can be used to encode picturesthereafter-snapped. A descriptor embedded in the image may be in theform of text, or a number that refers to metadata stored outside theimage.

[0813] Rather than having a cumbersome interface built into the camera,the camera may support one or more plug-in user interface peripherals,such as a keyboard. Alternatively, the configuration data in the cameramay be synchronized with configuration data in an external device via awire or wireless connection.

[0814] In some applications, the photographer may be intentionallyprecluded from controlling the data associated with pictures. Thisfeature is important in applications where there is concern that thephotographer might tamper with the metadata associated with an image.For example, the photographer might try to alter the time, place orsubject to create a false or misleading photographic record. To preventsuch tampering, the photographer's employer or supervisor can set theoperating parameters and make data type selections from an externalsource. Operating parameters may be used to set certain types of data,such as the time, or to disable the photographer's ability to changecertain parameters.

[0815] In order to implement such features, the camera supports avariety of different operating modes. In a session mode, the cameraoperates under the control of parameters that govern that session. Theoperating parameters for the session may be established through the userinterface of the camera, or from an external device. In addition, theuser may initiate a session, or an external device may initiate thesession.

[0816] When the camera receives the operating parameters for thesession, it makes all settings to comply with the instructions specifiedin the operating parameters. For example, if the session parametersinstruct the camera to set the time, date, place or subject for thesession, the camera does so. The session parameters may also specifythat the user is to be precluded from altering the operating parametersfor the duration of the session. For example, the user may be precludedfrom altering data items or data types associated with images snappedduring the session or from altering certain camera functions, such as atime keeping function, a GPS function, etc. during the session.

[0817] The duration of the session may be set and measured using certainoperating parameters. For example, the session may be in effect forspecified period of time, for selected number of images, for selectedGPS locations within a defined range, etc. In addition, the sessionduration may be specified in terms of certain events, such as aconfiguration event in which the session is configured, and an uploadevent, where the images snapped during a session are uploaded from thecamera. Using this approach, the one configuring the camera can specifythat the session shall extend from the configuration event to some otherevent, such as the act of uploading the images in the session.

[0818] A session may be tracked and associated with session relatedmetadata by a session identifier encoded in the image, the image file,or its metadata. For example, the session identifier may be a number ormessage embedded steganographically in the image or metadata associatedwith the image.

[0819] Configuration via External Devices

[0820] As noted in previous sections, the data to be associated withimages may be provided by an external device. The external device mayset operating parameters that control the operation of the camera,including how and what data it associates with images. The externaldevice may also set the data types as well as the actual data to beassociated with images in the camera.

[0821] In some applications, a computer can be programmed to performthis function automatically for one or more cameras. For example, aserver may be programmed to broadcast operating parameters and data toseveral cameras in the field.

[0822] In other applications, a user may enter the desired operatingparameters and data to be associated with the images in the camera. Inclient-server scenario, for example, a user of a client device maysubmit desired operating parameters and data to server, which in turn,sends the information to the camera. In an alternative scenario, theuser can enter this information via an application program executing onhis PC, or PDA, and then instruct the application to download theinformation to the camera via a direct wire or wireless connection tothe camera.

[0823] Image Data Sources

[0824] The data associated with images in the camera may come from avariety of sources. One source of data is the camera UI. Another sourceis the internal components and peripherals of the camera, such as a timeclock, GPS device, camera components, camera software, etc. Yet anothersource is an external device. In this case, the camera will either havethe data in its memory, after receiving it from the external source, orthe camera will have a reference to data, which is stored on externaldevice. As detailed further below, the reference may be an pointer,address or some other form of identifier that is encoded in the image.

[0825] Storage of Data Types and Data Items Associated with Images

[0826] A related design issue is where to store the data associated withan image at various stages of image processing. These stages include: 1)before configuring the camera; 2) after configuring, but before snappingthe picture; 3) after snapping, but before transferring the associatedimage from the camera; and 4) after transferring the image from thecamera.

[0827] Before Configuring the Camera

[0828] Before configuring the camera, the data types and data items tobe associated with images may be stored in the camera or in one or moreexternal storage devices, depending on the application.

[0829] The camera may maintain data types and items within the memorysubsystem built into the camera (e.g., ROM or RAM) or within removablememory devices, such as a floppy disk, flash memory card etc. In someimplementations, the camera maintains a set of data types that a user,application program or device may select to associate with images. Auser can select from among these desired data types from the userinterface of the camera or from an external device.

[0830] In applications for external configuration, a user, device orapplication program may maintain this data in memory of a computer, suchas personal computer, personal digital assistant, server on theInternet, etc.

[0831] After Configuring the Camera

[0832] After configuring the camera, selected data types and items to beassociated with images may be stored in camera memory, or in externalstorage. In either case, the camera maintains an association between theimages to be captured and the data to be associated with those images.In cases where the image metadata is stored externally, the cameramaintains a reference to the external data, such as an identifiernumber, pointer, or address.

[0833] After Capturing A Target Image

[0834] After capturing a target image in the camera, the camera maystore data items associated with the image in the image itself throughsteganographic encoding, in the image file, outside the image file butwithin camera memory, and in external storage. The “target” image refersto the image that is associated with selected data types and data items.In the last two cases, the camera maintains a reference between thetarget image and the associated data. The reference may be encoded inthe image steganographically or in the image file.

[0835] After Transferring the Image from the Camera

[0836] After transferring the image from the camera, the options forstoring the data associated with the target image remain the same, yetthe camera or some external device or process may transfer the data fromone location to another. For example, an external steganographic encodercan embed some of the data in the image. In addition, an externalprocess or device can transfer data to or from the image metadata in theimage file. Image data stored externally may be transferred from onedatabase, e.g., a configuration database, to another database, e.g., animage library or metadata database. For example, upon uploading an imageto an image database, the uploading process can signal the configurationdatabase to transfer image related data to the image or metadatadatabase.

[0837] Associating Image Data with Images

[0838] The previous sections highlighted several methods for associatingdata with images. These methods include: steganographic encoding data inthe image, storing the data within the image file (outside the image),storing the data outside the file and associating this external datawith a reference stored in the file or encoded in the image. Thefollowing sections describe examples of these methods in more detail.

[0839] Embedding Auxiliary Data within an Image Using SteganographicMethods

[0840] The art of hiding auxiliary data into still and moving images isrelatively advanced. Most techniques make slight changes to theimage—e.g., by changing data representing the image, whether in the formof DCT coefficients, wavelet coefficients, pixel values, or otherinterchangeable representation—to thereby encode the auxiliaryinformation. The changes are so slight as to be essentiallyimperceptible to the human visual system. Exemplary watermarkingtechniques are shown in U.S. Pat. No. 5,841,886 to Rhoads and U.S. Pat.No. 5,915,027 to Cox.

[0841] For additional information about a digital watermarking form ofsteganographic embedding and reading, see co-pending U.S. PatentApplication entitled Watermark Embedder and Reader by Geoff Rhoads etal., commonly assigned, and filed concurrently with this application.

[0842] The steganographic encoder may be located within the camera or inexternal process or device. In either case, the encoder can beimplemented in software, hardware or a combination of both.

[0843] An encoder implementation in the camera operates on images storedin the camera's memory system. For each image, the encoder convertsauxiliary data to be embedded in the image into watermark signal andcombines the watermark signal with the image. This auxiliary data mayinclude one or more references, a machine instruction or set ofinstructions, and other data items about the image. A reference is adata item, such as identifier number, address or pointer. It may be usedto identify the image and reference additional data related to it.

[0844] The camera-based encoder obtains auxiliary data to be embedded inan image from memory, or some other device in the camera. Recall thatduring configuration of the metadata, the user or some external deviceor process specifies the data types and data items to be associated withimages. At encoding time, the encoder retrieves data designated forembedding in the image, converts it into a watermark signal and combinesit with the associated image. To reduce the amount of data embedded inthe image, the encoder may embed one or more references that identifydata associated with the image that is stored outside the image.

[0845] There are many places to implement the encoder outside thecamera. In one implementation, the encoder is implemented as part of aprocess for uploading the image from the camera. In this implementation,the data for embedding in the image may come from the camera, anexternal device, or a combination of both. During the configurationstage, a configuration process specifies that data to be associated withimage, including any data to be embedded in the image. As explainedabove, this data may be stored on the camera or an external device. Theuploading process transfers the images from the camera, along with anydata associated with the images.

[0846] As part of the uploading process, an encoder then encodesauxiliary data designated for embedding in the image into the image. Asin the camera-based process, this auxiliary data may include one or morereferences that associates the image with other auxiliary data storedoutside the image. This type of reference avoids the need to transfermetadata into the camera. Rather than transfer such data into thecamera, metadata may be configured and maintained on an external device,and referenced to the image via a reference encoded into a watermark inthe image. Conversely, the uploading process may move data associatedwith an image from the camera, store it in a metadata database, andreference the entry in the database via a reference encoded in thewatermark.

[0847] Embedding Auxiliary Data in the Image File

[0848] The camera, or an external process, may also embed auxiliary datain the image file, but outside the image. To support this type ofassociation, the image is stored in a file format that allows metadatato be stored in the file along with metadata. For example, the formatmay specify that the data is to be stored in the file header. Thisapproach of associating data with an image has advantages, but is moresusceptible to intentional or unintentional manipulation.

[0849] In this case, a reference embedded in the image can be used tocorrelate the image with the correct metadata. This is particularlyuseful in applications where the metadata is placed in the image file bya process external to the camera. In these cases, it is possible thatthe metadata may be improperly assigned to a particular image. Inaddition, various image processing applications may remove or alter theimage metadata stored in the image file. The data steganographicallyembedded in the image can be used to authenticate the metadata stored inthe image file. One form of authentication is to match a referencenumber embedded in the image with a reference number in the image filemetadata. More sophisticated forms of authentication may be implementedas well.

[0850] For example, both the number in the file metadata and thewatermark may be encrypted. Also, the number may be a digital signaturederived from the image, such as by performing a hash function on theimage sample values. The digital signature has the added advantage thatit can be used to determine whether the image has been modified. Foradditional security, the digital signature can be encrypted, and thenembedded in the watermark and placed in the image file metadata.

[0851] Maintaining Auxiliary Data Separate from the Associated Image

[0852] As noted above, the auxiliary data associated with the image canbe maintained separately from the image. A reference to this external,auxiliary data may be embedded in the image (e.g., in a watermark), inthe image file metadata, or both.

[0853] Data Types

[0854] The types of data that can be associated with an image arenumerous and vary with the application. The image data frameworkdescribed above supports a variety of different data types, including:

[0855] who took the picture (the photographer,

[0856] who or what is the subject of the picture,

[0857] where was the picture taken (e.g., entered by user, or providedby GPS device),

[0858] when was the picture taken (e.g., date and time of day),

[0859] how was the picture taken, including camera specifications suchas brand, model, manufacturer, and type of color converter, lens,sensor, flash, etc.

[0860] picture specific device data, including shutter speed, flashused, camera settings, focus, distance of subject from camera,resolution of image, light levels,

[0861] why was the picture taken? entertainment, legal record, medicalrecord, real estate, business transaction record, etc.

[0862] image type,

[0863] copyright conditions,

[0864] copyright owner and owner of copy,

[0865] view data—the camera location and subject location,

[0866] comment—e.g., user comment

[0867] picture identifiers, e.g., industry or application specificidentifiers,

[0868] collection data, including collection ID, collection caption,collection members,

[0869] Image quality parameters,

[0870] Color profile,

[0871] Image integrity—Digital signature, encryption key (e.g., publicencryption key),

[0872] Sound annotation, or reference to sound annotation,

[0873] Language specifier, for elements of the metadata,

[0874] view region—Advanced Photo System Print Aspect Ratio (PAR)selections of conventional, HDTV, and panoramic,

[0875] user address, e.g., email or physical address,

[0876] reference to derivative work—parent image and its derivatives,

[0877] reference to alternative images—e.g., alternative view, colorspace, resolution, etc.

[0878] region specification—describe a region in a picture, e.g., thepixels that represent an object in the picture,

[0879] compression format of image, compression format of image data(e.g., compression format of image metadata),

[0880] encryption type of the image, and the image data (encryption ofimage metadata),

[0881] references to other information (e.g., pointers, network links oraddresses, phone numbers, etc.)

[0882] machine instructions or sets of instruction, e.g., instructionsthat control rendering of the image, that disable or enable certaintypes of editing operations, that control compression, decompressionoperations, etc.

[0883] Metadata Applications that Exploit Steganographic Data

[0884] Steganographic encoding of data enhances existing applications ofimage metadata and enables a variety of novel applications. Thefollowing sections describe some of these applications.

[0885] Persistent Steganographic Data and Metadata Servers

[0886] Steganographic encoding of auxiliary data in an image enablespersistent linking of the image to its metadata. Metadata that is storedwithin an image file, yet outside the image, is vulnerable tointentional and unintentional manipulation. Whenever an application ordevice processes the image, it may remove or alter the associatedmetadata. One solution is to store the metadata separately from theimage. However, this approach requires that there be a reliable way tolink the metadata to the image as it passes from one image processingapplication or device to the next. Steganographic encoding provides sucha link between the image and its metadata. This link is referred to as apersistent staganographic link because it remains part of the image datathrough various image processing operations, including transfer to andfrom the analog domain (e.g., printing to image capture).

[0887]FIG. 3 is a diagram illustrating a metadata server applicationthat uses a persistent steganographic link to ensure that variousdevices and applications that process an image have access to itsmetadata. This diagram refers to “compliant” and “non-compliant”metadata applications. A compliant application refers to a device orsoftware process that adheres to standard guidelines for maintainingimage file metadata. A non-compliant application is a device or processthat does not adhere to such guidelines, and may alter the metadata inunintended ways.

[0888] Starting from the upper left of FIG. 3, a compliant applicationadds metadata to the image, and sends the metadata to a metadata server.The server stores the metadata along with a reference (e.g., uniquenumber) to the image. This reference serves as a link to the image, andmatches the reference steganographically embedded in the application.This example scenario assumes that the form of steganographic coding isa digital watermark. Either the compliant application, or some otherprevious process embeds the watermark, including the reference, in theimage.

[0889] The compliant application produces an image file that includesthe digital watermarked image (DWM) and the metadata. One example ofsuch an application is the application for uploading images from camerasor from PCs to a server on the Internet. This application embeds thewatermark in the image and forwards the metadata to the metadata server.Note that the server application for uploading images and the metadataserver database application may be implemented in the same server or agroup of servers.

[0890] Next, a non-compliant application gets this file, and removes orcorrupts the metadata, leaving only the watermarked image.

[0891] Noticing that the image does not have metadata, the nextcompliant application sends a request to the metadata server for theimage's metadata. The compliant application, equipped with a watermarkdetector, screens the image and extracts the reference to the image'smetadata. It then forwards this reference to the metadata server, whichreturns the metadata. The format of the metadata may be based on XML orsome other standard or custom data format. Preferably, the metadataformat is sufficiently general to be compatible with many differentdevices and applications, but this not a requirement. The compliantapplication produces a new image file, including the watermarked imageand its restored metadata.

[0892] Metadata Router

[0893] This concept can be extended beyond a single system by addinganother component, the metadata router. Assume a collection of differentsystems, each with its own metadata server, and each tracking its ownimages. FIG. 4 depicts an example of three different systems, eachhaving its own metadata server. Each of the metadata servers handlesrequests from imaging applications within its system. If an image fromone system is acquired by another system, the new system will not haveany associated metadata. Therefore, any application in the new systemthat tries to retrieve metadata from its metadata server will fail; itwill find no information. If however, the new metadata server candetermine which metadata server does have the information, it canrequest the image metadata from the other metadata server.

[0894] The Metadata Router is the component that can help resolve whichmetadata server contains information about a particular image. Themetadata router can operate either on a watermarked image, or areference extracted from an image. In the former case, the requestingsystem has been unable to detect the metadata reference (e.g., it cannotdetect a watermark), and thus, has forwarded the image to the router.The router then performs one or more watermark detection operations toextract the reference, and if successful, maps the extracted referenceto the metadata server by using the extracted reference as a key to themetadata server in its database.

[0895] In the latter case, the requesting system has extracted themetadata reference, but does not maintain the metadata for thatreference. The metadata router maps the reference to the appropriatemetadata server by using the reference as a key to the metadata serverin its database. It then redirects the request to the metadata server,which returns the requested metadata directly or indirectly to therequesting metadata server. This system may be implemented on a computernetwork, such as the Internet, using conventional networking protocolsto communicate requests and return data over the network.

[0896] Searching Metadata

[0897] The techniques described above provide powerful applications forsearching metadata that extend across different imaging applications andsystems. For example, a user of an imaging application in one system cansend a search request to the metadata server for that system. The searchrequest can direct a search in one more fields of the metadata (e.g.,time, place, subject, etc.) in the metadata database. Using the metadatarouter, the metadata server can extend the search across systems byforwarding the search request to a metadata router, which in turn,forwards the requests to other metadata servers.

[0898] In addition, applications can support image based searching. Forexample, an end user might find an image of interest. The user thenissues a request such as: “find other images like this one” (e.g., takenat a similar time, in a similar place, or having a similar subject). Theclient application or the metadata server extracts the reference fromthe image watermark. The metadata server then searches its database forimages that are similar based on the criteria provided by the user, orbased on metadata associated with the image. The metadata server canextend the search to other metadata servers by forwarding the request toother metadata servers via the metadata router. If the user finds animage that is not compatible with the system he is using, the sameapproach outlined above for finding the image's metadata can be used tofind the corresponding metadata server and initiate a database searchfor related images.

[0899] Access to Just Metadata (Independent of the Picture)

[0900] The schemes outlined above facilitate access to metadataindependent of the picture. By storing the metadata in a metadatadatabase, applications can access, search and transfer the metadatawithout the images. This is particularly beneficial where bandwidth andstorage is limited because the most common form of metadata, text, isusually smaller in size than the associated image. It requires lessbandwidth and memory to transmit and store this text separately from itsassociated image.

[0901] Metadata of an image may also be voluminous in some cases. Forexample, the metadata may include a sound or video annotation. It isadvantageous to be able to store, access and search this type ofmetadata separately.

[0902] Metadata Editing (Create, Read, Update, and Delete)

[0903] The metadata server scheme outlined above support editing of themetadata associated with an image. To edit an image's metadata, a usermay access the metadata by extracting the persistent link to themetadata server and issuing a request to the metadata server. Themetadata server implements a scheme for managing the rights to edit(e.g., create, read, update, and delete) the image's metadata. Forexample, the server may require the user to enter authenticationinformation, such as user name and password. In response, the serverdetermines the editing rights by looking them up in its database. Basedon these rights, the user may be granted the authority to create, read,update, or delete the metadata.

[0904] Metadata Persistence

[0905] Persistent steganographic links to metadata ensure thepersistence of an image's metadata through various operations, includingfile conversion (e.g., changing the file format of the image), filetransmission (e.g., sending an image by email, or by wirelesstransmission), image compression, and image editing. The steganographicdata is designed to stay in tact through various forms of imageprocessing.

[0906] The persistence of the steganographic link also ensures metadatapersistence of various types of data associated with the image,including copyright information. In addition, it supports addingmultiple instances of copyright information, for works with multipleowners, and authors. The scheme for managing editing rights describedabove enables authors who create new works based on existing works toadd copyright information to the image. The metadata server may beprogrammed to notify the copyright owner whenever another author wishesto modify an image. The right to modify a particular image may bepre-specified (e.g., a specified list of authors who have editingrights), or may be requested on a case by case basis. The metadataserver may notify the copyright owner by email, for example, asking forauthorization to grant editing rights to a particular author. Ifgranted, the metadata server informs the new author of the terms. Then,if the new author excepts the terms by sending a return email ormanifesting intent via an interactive web page, for example, themetadata server allows the new author to create a derivative work of theimage.

[0907] The derivative work inherits the metadata of the original work,including copyright information of the copyright owner in the originalwork. To associate the metadata for the new image, the metadata serverprovides a new reference to the new author's imaging application, whichin turn, steganographically encodes the new reference in the derivativework. Additionally, the metadata server adds an entry in its databasethat associates the reference embedded in the new work with itscorresponding metadata This entry may also include a pointer to thedatabase entry for the original work. This scheme for cross referencingearlier works enables the metadata server as well as system users andapplications to track the history of an image through various types ofediting.

[0908] Steganographic linking of images to metadata allows thepersistence of an image's metadata to be specified externally by a user,device or application. As noted above, the persistence of metadata isoften vulnerable to intentional and unintentional manipulation. It isdifficult for a user to specify which items of metadata are to persistwith the image, and under which circumstances.

[0909] The metadata server allows users, devices and applicationprocesses to specify which items of metadata are to remain persistent,through various forms of processing. The metadata servers and routers,having the appropriate authority, may annotate an image's entry orentries in a metadata database to specify which data items will survivespecified types of image processing, or image transfers. For example, ifone system requests a metadata server to supply metadata to anothersystem via the metadata router, the metadata server will only supplymetadata that is designated to be persistent for the specified type ofoperation on the image.

[0910] The steganographic link to metadata also supports the combinationof metadata when two or more images are combined. As noted above, themetadata server may issue a new reference to be steganographicallyencoded in the new, combined image. The server may combine the metadataby combining the metadata for each component image into one metadatadatabase entry, by inserting reference links in the database entry forthe new image to the metadata entries for the component images, or somecombination of these approaches.

[0911] Metadata Format and Processing

[0912] The metadata may be specified using the standard ExtensibleMarkup Language, XML, or some other standard or custom format. The XMLstandard describes a class of data objects called XML documents andpartially describes the behavior of computer programs which processthem. XML is an application profile or restricted form of SGML, theStandard Generalized Markup Language [ISO 8879]. By construction, XMLdocuments are conforming SGML documents. XML documents are made up ofstorage units called entities, which contain either parsed or unparseddata. Parsed data is made up of characters, some of which form characterdata, and some of which form markup. Markup encodes a description of thedocument's storage layout and logical structure. XML provides amechanism to impose constraints on the storage layout and logicalstructure.

[0913] A software module called an XML processor is used to read.XMLdocuments and provide access to their content and structure. In theimplementations based on XML, the XML processor processes raw XML dataon behalf of other application programs, such as an image processingapplication or a metadata server application. For more information onXML and XML processors, see the XML Standard document, Version 1.0, bythe World Wide Web Consortium.

[0914] Metadata Security and Authentication

[0915] The metadata associated with an image may be secured andauthenticated at various stages of processing. These processing stagesinclude: at or shortly after image capture in the camera, upon uploadingthe image from the camera, within the metadata server, and duringtransfers of the metadata from one device, application or system toanother. One way to secure the metadata is to encrypt it. Another way isto restrict access to it via the metadata server such that onlyauthenticated users, applications, and devices have access to it. Yetanother way is to create a digital signature of the metadata, such as byperforming a secret hash function on the data to derive a uniquesignature. This signature can be recomputed for suspect metadata andcompared with a signature stored in the metadata database or elsewhereto determine whether the metadata has been modified.

[0916] Other Applications

[0917] With the growth in popularity of digital image capture devices,there is a growing demand for photo processing and storage services fordigital images. Several companies now offer photo-processing servicesaccessible via the Internet. These services create prints of digitalphotos sent via the Internet and mail the prints to the customer. Arelated service is providing an on-line database of images. Suchservices enable customers to maintain a collection of photos in anaccessible database, e.g., an on-line database on the Internet.

[0918] The metadata database applications described above provide aneffective way to manage data associated with images. These applicationsare particularly applicable to the Internet, where the databaseinformation may be made available to a variety of users, imagingdevices, application processes and systems.

[0919] The image metadata may be maintained in a separate database or ina database integrated with an image database that stores the imagesthemselves. The image database may contain a private collection ofphotos or collections of photos from unrelated users.

[0920] A related application to maintaining image and metadata databasesis tracking transactions involving the images or their metadata. Theimage or, metadata database may keep a history or log file of thetransactions associated with an image. For example, as users requestprocessing services on photos, such as creating prints, putting theprints on objects (e.g., shirts, cups, calendars, posters etc), etc., atracking application keeps a record of the transaction, listingattributes of the transaction like the date, vendor, service provided,and images subject to the service. The transaction history may then belinked with other metadata and the image itself by a reference, such asthe steganographic link embedded in the image. There are a variety ofother ways to link the transaction history with an image. For example,the transaction history may be stored in an entry in the metadata orimage database associated with the image.

[0921] Concluding Remarks

[0922] Having described and illustrated the principles of the technologywith reference to specific implementations, it will be recognized thatthe technology can be implemented in many other, different, forms.

[0923] The particular combinations of elements and features in theabove-detailed embodiments are exemplary only; the interchanging andsubstitution of these teachings with other teachings in this and theincorporated-by-reference patents/applications are also contemplated.

What is claimed is:
 1. A method of identifying an object, comprising thesteps of: encoding an object by utilizing discernable physicalattributes for encoding information regarding said object; and utilizingsaid encoded information as at least one element for composing a digitalwatermark for said object.
 2. The method of claim 1, wherein saidphysical attributes further comprise a set of taggants in associationwith said object, wherein said set of taggants is comprised of membershaving discernable physical attributes predetermined for encodinginformation regarding said object.
 3. The method of claim 1, whereinsaid physical attributes comprise at least one of size and shape.
 4. Themethod of claim 1, wherein said physical attributes comprise color. 5.The method of claim 1, wherein said physical attributes are related toone or more dimensions of said object.
 6. The method of claim 1, furthercomprising the steps of: detecting said encoded information in saiddigital watermark; and authenticating said object by comparing saidencoded information with said discernable physical attributes of saidobject.
 7. A method of identifying an object, comprising the steps of:encoding an object by utilizing discernable physical attributes forencoding information regarding said object; and utilizing said encodedinformation as a key to retrieve data encoded in a digital watermarkassociated with said object.
 8. The method of claim 7, furthercomprising the step of authenticating said object by utilizing said dataencoded in said digital watermark.
 9. The method of claim 7, whereinsaid physical attributes further comprise a set of taggants inassociation with said object, wherein said set of taggants is comprisedof members having discernable physical attributes predetermined forencoding information regarding said object.
 10. An apparatus foridentifying or authenticating an object, comprising: a detector fordetecting physical attributes and a watermark associated with saidobject; and a decoder for decoding information encoded by said physicalattributes and information included in said watermark for at least oneof identifying or authenticating said object.
 11. The apparatus of claim10, wherein said physical attributes associated with said object furthercomprise a set of taggants in association with said object, wherein saidset of taggants is comprised of members having discernable physicalattributes predetermined for encoding information regarding said object.